Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

記事の内容に不備 (@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ライフを!

moomooya
React+Flaskでなにか考えてたけど、FirebaseならTypeScriptだけでいいや。 パブリックなアウトプットを減らしてコード書く年にする(2度目)。
http://www.slideshare.net/isamusuzuki54
rakus
「IT技術で中小企業を強くします!」というミッションを掲げ、中小企業の業務効率化に貢献する複数のクラウドサービスを提供しているIT企業です。「楽楽精算」「メールディーラー」など、国内トップシェアを誇る複数のサービスを開発し、累計導入社数は5万社を超えています。次の時代の"楽"を創るための、まだ見ぬサービスや機能を生み出す取り組みは、今日も続いています。
https://www.rakus.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away