エンジニアになった元数学教師の記録

VSCodeのGit Bashにて貼り付けをすると末尾にゴミがついている問題

March 04, 2024 02:15
May 05, 2024 00:22

概要

GitHubと連携するときに見やすいという理由でVSCode(Cursor)ではGit Bashを好んで使用しているのですが、コピーしたものを貼り付けすると01~のような本来なかったゴミが引っ付いていることがありました。

気が付かずにEnterを押してコマンド失敗することも多々あり、結構ストレスになっていたのでどうにかならないか調べてみました。

対処法

下記サイトにあるように~/.bashrcに下記を追記(なければ作成)し、Git Bashを再起動して下さい。

~/.bashrc
1# setting for git bash bug on cursor
2bind 'set enable-bracketed-paste off'

ただし、自分の場合にはこれだと下記のエラーが出てきていました。

1WARNING: Found ~/.bashrc but no ~/.bash_profile, ~/.bash_login or ~/.profile.
2
3This looks like an incorrect setup.
4A ~/.bash_profile that loads ~/.bashrc will be created for you.

エラー内容としては「~/.bashrcはあったけど、~/.bash_profile,~/.bash_login ,~/.profileはなかったよ」といっているのですが、実際にはちゃんと存在していました。

ですが、最終行に~/.bash_profileにて~/.bashrcを読み込むようにしてくれと書いてあるので、その通り下記を追記します。

~/.bash_profile
1if [ -f ~/.bashrc ]; then
2   source ~/.bashrc
3fi

その後、もう一度Git Bashを再起動してみるとエラーが消えており、貼り付けしても末尾にゴミはついていないはずです。

これで快適なGit Bashライフがやってきます。

.bash_profileと.bashrcについて

そもそも、さっきから出てきている.bash_profileやら.bashrcについて少し触れておきます。

前提として、Linuxでは.から始まるファイルは隠しファイルとして扱われるため、.bashrc.bash_profileも隠しファイルとなっています。

これらは通常ユーザのホームディレクトリに配置され、使用するユーザの設定をカスタマイズすることができるファイルとなっています。

これらはbash専用のファイルで、シェルが異なればbashの部分が変わってきますが、基本的な挙動は同じものです。

場合によっては存在しないこともあります。

.bash_profile

ユーザログイン時に1回のみ実行されます。

このファイルには下記を設定することが多いです。

  • 環境変数(exportで宣言する変数)

.bashrc

シェル起動時に1回実行されます。
具体的にはコマンドラインでbashコマンドを使用した際や、プロンプトを立ち上げなおした際などに実行されます。

このファイルには下記を記述することが多いです。

  • エイリアス
  • シェル関数
  • コマンドラインの補完
  • プロンプト表示設定(PS1)

また、.bashrcを編集したとき、変更した結果は次回のシェル起動時に実行されるため、現在のシェルには反映されていません。

そのため現在のシェルに反映させるには下記コマンドで再度.bashrcを読み込ませる必要があります。

1source ~/.bashrc

最後に

ちょっと横道にそれてしまいましたが、皆さんのGit Bashライフが少しでも豊かになってもらえれば幸いです!