730

Windows10のVSCodeにbashを設定してみた

動機

PowerShellは使いづらいし、cmdは不便、なにか良い物はないかということで、そうだbashを入れようとなったので、その備忘録がてら。

cmdはコマンド履歴残らないのが何より嫌だし、bashはsedみたいな便利なコマンドも多いんですよね。PowerShellはよくわからないし、Windowsでしか使えないし、いいやってなった。

Windowsでbash?

bashといえばLinuxのシェルです。Windowsで動くのだろうか?と思いますが、Gitをインストールした時についてくるGit bashはWindows向けのbashの一つだと思いますし、他にもCygwinとか言うのもありますね。今回はMSYS2を利用します。

何故MSYS2なのかというと、運用が楽そうだったからです。Cygwinはインストーラー自体が結構ややこしく、インストール後のパッケージ追加の方法もよくわかりません。MinGWを入れようとも考えたのですが、64bit版を探していたらMSYS2にたどり着き、扱いやすそうだったのでこれにしました。

MSYS2 introductionによればMSYS2はWindow向けのUnix風プラットフォームで、専用のコマンドラインシェル、パッケージマネージャを持っているようです。また、MinGW-w64の派生らしいので、Cygwinを祖先に持っているっぽいですね。このページにはざっくりした概要が書かれているのでサラッと読んでおくといいかもしれません。

MSYS2の導入

  1. MSYS2 homepageからインストーラーを落としてきて走行。
  2. インストールが終わったらMSYS2を起動。(インストール完了時に起動させなかった場合、msys2_shell.cmdを実行します)
  3. pacman -Syu を更新がなくなるまで実行。

VSCodeの設定

そのままではVSCodeで動かないので、VSCodeのシェルにするために以下の設定を追加。

設定内容

  • "terminal.integrated.shell.windows"
    • 使うシェルのPath
  • "terminal.integrated.env.windows"
    • シェルで利用する環境変数
      • "MSYSTEM"
        • MINGW64 を使用する設定
          • 他にも MINGW32 や MSYS が指定可能だが、余り選ぶ理由はなさそう
      • "CHERE_INVOKING"
        • カレントディレクトリを変更する設定
          • この設定がないと常に~で起動する
      • "MSYS2_PATH_TYPE"
        • WindowsのPATHを継承するかどうかの設定
          • strict で非継承、 inherit で継承
  • "terminal.integrated.shellArgs.windows"
    • Integrated Terminalには -l を設定しろとある
      • どうやら -l を渡してやらないと.bash_profileを読み込まないらしい?

.bashrcの設定

標準だとちょっと不便なので変更。 C:\msys64\home\USERNAME\.bashrc に転がってます。

  • bash_historyから重複行をなくす
    • Don’t put duplicate lines in the history.のとこ
  • bash_historyをリアルタイムに書かせる?
    • Whenever displaying the prompt, write the previous line to disk.のとこ
      • 設定してないとbash_historyに書いてくれないケースがある
りこ🍥
  • りこ🍥
  • 🌌ネトゲ廃人を経てWeb漂流物に成り果てた何か。さて次へ向かう先はどこやら。えっちらほっちら。

コメントする

メールアドレスが公開されることはありません。