##はじめに
[Visual Studio Codeの統合シェルをMSYS2のbashにする][A]
という記事はすでにあるのですが、知らずに作ってしまいました。
msys2_shell.cmd
の解説を兼ねて残しておきます。
##実行環境
Visual Studio Code バージョン 1.19.2
MSYS2 64Bit版(x86_64)1 20161025
##msys2_shell.cmd
とは
かつてはmingw32_shell.bat
,mingw64_shell.bat
,msys2_shell.bat
があったのですが、
[filesystem
パッケージの更新][B]によりmsys2_shell.cmd
へと統合されました。
C:\\msys64\\msys2_shell.cmd --help
を実行すると以下の文章が出力されます。
Usage:
msys2_shell.cmd [options] [bash parameters]
Options:
-mingw32 | -mingw64 | -msys[2] Set shell type
-defterm | -mintty | -conemu Set terminal type
-here Use current directory as working
directory
-where DIRECTORY Use specified DIRECTORY as working
directory
-[use-]full-path Use full currnent PATH variable
instead of triming to minimal
-no-start Do not use "start" command and
return bash resulting errorcode as
this batch file resulting errorcode
-help | --help | -? | /? Display this help and exit
Any parameter that cannot be treated as valid option and all
following parameters are passed as bash command parameters.
要約すると
使い方: msys2_shell.cmd [オプション] [シェルの引数]
オプション:
-mingw32 | -mingw64 | -msys[2] シェルタイプの設定
-defterm | -mintty | -conemu ターミナルタイプの設定
-here カレントディレクトリを
作業ディレクトリに設定する
-where DIRECTORY "DIRECTORY" を
作業ディレクトリに設定する
-[use-]full-path WindowsのPATH環境変数を
MSYS2のPATH変数に引き継ぐ
-no-start "start" コマンドを使わずに起動し
シェルの返したエラーコードを
このバッチのエラーコードとして返す
-help | --help | -? | /? helpを表示して終了する
オプションではない引数とそれ以降の引数はシェルの引数として渡されます。
つまり、msys2_shell.cmd
の引数に
-defterm -no-start
を指定すればbash.exe
を同一ターミナル上で実行でき、
-here
を指定すればVS Codeのワークスペースを作業ディレクトリにでき2、
-full-path
を指定すればWindowsのPATH環境変数が引き継げます。
##結論
{
"terminal.integrated.shell.windows":"C:\\msys64\\msys2_shell.cmd",
"terminal.integrated.shellArgs.windows": [
"-mingw64","-defterm","-no-start","-here","-full-path"
],
"terminal.integrated.setLocaleVariables":true
}
を設定に書くだけです3。
##解説
設定の名称 | 説明 |
---|---|
"terminal.integrated.shell.windows" |
[Windows]ターミナルで使うシェルのパス |
"terminal.integrated.shellArgs.windows" |
[Windows]ターミナルで使うシェルの引数 |
"terminal.integrated.setLocaleVariables" |
ターミナル起動時にロケール変数を設定する |
つまり
set LANG=(ユーザーロケール)
C:\\msys64\\msys2_shell.cmd -mingw64 -defterm -no-start -here -full-path
をターミナル起動時に実行するということです。
##参考
[Visual Studio Code 15.1の統合シェルをMSYS2のbashにする][A]
[MSYS2の更新に伴う起動用ショートカットの修正][B]
[Windows環境でVSCode+MSYSで快適に使う方法][C]
[A]:https://qiita.com/yumetodo/items/42132a1e8435504448aa "Visual Studio Code 15.1の統合シェルをMSYS2のbashにする"
[B]:https://qiita.com/k-takata/items/2220ba2e8dd5bcba3961 "MSYS2の更新に伴う起動用ショートカットの修正"
[C]:https://qiita.com/moomooya/items/64afd71b327eb14809b1 "Windows環境でVSCode+MSYSで快適に使う方法"