WindowsにインストールしたVS CodeのターミナルはデフォルトでPowerShellだけど、設定でGit BashやCygwinのシェルに変更できる。
設定方法
Git Bash
Git for WindowsをインストールするとついてくるGit Bashは、VS Codeが自動で認識するので設定画面で設定できる。
「Features > Terminal > Integrated › Default Profile: Windows」を探し、ドロップダウンメニューから「Git Bash」を選択する。
settings.json
に直接記述する場合は以下の通り。
"terminal.integrated.defaultProfile.windows": "Git Bash",
Cygwin bash
Cygwinのbashをデフォルトのシェルにする場合は、デフォルトシェルの設定に加えてCygwinのbashをVS Codeに認識させる(登録する)必要がある。設定は以下の通り。
設定の雛形は「Features > Terminal > Integrated > Profiles: Windows」の「Edit in settings.json」をクリックすればsettings.json
に挿入される。
"terminal.integrated.defaultProfile.windows": "Cygwin", "terminal.integrated.profiles.windows": { "Cygwin": { "path": "C:\\cygwin64\\bin\\bash.exe", "args": ["--login"] }, }
terminal.integrated.profiles.windows
で"設定名": { "path": "シェルの実行ファイルのパス", "args": "実行ファイルの引数"}
を指定する。
デフォルトで使えるPowerShellとGit Bashの設定は不要(無くても動作する)
--login
は無くても動作の違いが実はわかっていないんだけど、指定しなくても良いのかな?(「明示的にログインする」場合に指定するらしいけど、VS Codeからの「起動」は当てはまらない、とか…?)
Cygwin zsh
Cygwin bashの場合と基本的に同じ。前述のCygwin bashにzshも追加で設定する場合は以下の通り。
"terminal.integrated.defaultProfile.windows": "Cygwin zsh", "terminal.integrated.profiles.windows": { "Cygwin zsh": { "path": "C:\\cygwin64\\bin\\zsh.exe", "args": ["--login"] }, "Cygwin": { "path": "C:\\cygwin64\\bin\\bash.exe", "args": ["--login"] }, }
以前はbash.exe
をまず呼び出して、chereパッケージに含まれるxhere
を使って["/bin/xhere", "/bin/zsh"]
と引数に指定したりしてたけど不要になってる。
補足
ググるとterminal.integrated.shell.windows
を設定する例がヒットするが、現在この設定はdeprecatedになっている。設定しているとVS CodeのUIの設定画面だと警告が表示される。
This is deprecated, the new recommended way to configure your default shell is by creating a terminal profile in
Terminal › Integrated › Profiles: Windows
and setting its profile name as the default inTerminal › Integrated › Default Profile: Windows
. This will currently take priority over the new profiles settings but that will change in the future.
これはCygwinのシェルをセットするときに使う。 terminal.integrated.shellArgs.windows
についても同様。