LoginSignup
7
11

More than 5 years have passed since last update.

Windows環境でVSCode+MSYSで快適に使う方法

Last updated at Posted at 2017-12-17

記事の内容に不備 (@lunateaさん、@yumetodoさんにご指摘いただきました) & @yumetodo さんの過去投稿記事とネタかぶりがありましたので、以下記事は参考にしないでください……orz

VSCodeを使うときに統合ターミナル画面が便利なので常時開きながら使っています。
MacなりLinuxなりだとBashなりなんなりとまともなターミナルが使えるのですが、Windows7だとデフォルトでcmd.exeとなるのが辛いところ。
なのでMSYS2を入れて快適なターミナル環境で使おうとしたけれど、ちょっとハマりどころがあるので共有します。

必要なもの

手順

  1. VSCodeはインストールされているものとします

  2. MSYS2をC:\msys64にインストールします

  3. VSCodeの統合ターミナル機能で利用するシェルの指定をします

ユーザ設定に素直に設定すると以下のようになると思いますが

{
    ...
    "terminal.integrated.shell.windows": "C:\\msys64\\msys2.exe",
    ...
}

これでは上手く動作しません。

で、どうするかというと


(12/18追記)

ここから↓ よろしくないようです。

setting.json
{
    ...
    "terminal.integrated.shell.windows": "C:\\msys64\\vscode_bash.bat",
    ...
}

と設定して、C:\msys64フォルダの下に

vscode_bash.bat
@echo off
set CHERE_INVOKING=1 set MSYSTEM=MINGW64 & C:\\msys64\\usr\\bin\\bash.exe --login -i

というbatファイルを用意します。

これで無事VSCodeの統合ターミナル機能からmsys2を呼ぶことが出来るようになります。

ここまで↑ よろしくないようです。


コメント欄で @lunatea さん、 @yumetodo さんに指摘していただいたところによると、引数なども指定できるようでした。

setting.json
{
    ...

    "terminal.integrated.env.windows": {
        "CHERE_INVOKING": 1,
        "MSYSTEM": "MINGW64"
    },
    "terminal.integrated.setLocaleVariables": true,
    "terminal.integrated.shell.windows": "C:\\msys64\\usr\\bin\\bash.exe",
    "terminal.integrated.shellArgs.windows": [
        "-i"
    ],

    ...
}

で行けるようです。

あと"terminal.integrated.setLocaleVariables": trueを指定することでpacman等が日本語表示されました。

詳細は @yumetodo さんの「Visual Studio Code 15.1の統合シェルをMSYS2のbashにする」をご参照ください。


それでは良いVSCodeライフを!

7
11
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
11