タイトル通りです。
以前、VS Code の統合ターミナルで BoW(Bash on Ubuntu on Windows) を指定して macOS に近づいた! と書いてました。
macOS や Linux では Git リポジトリの Text-mode interface である Tig を愛用しています。
BoW の時は Ubuntu に導入した Tig がそのまま統合ターミナルで動いたので喜んでたのですが、会社マシンはいまだに Windows 7 で BoW は使えませんし、自宅 MacBook の仮想マシンの Windows 10 にはわざわざ BoW とか入れてません*1。Gygwin とか今更入れたくないしなーと時々思い出したように Windows 版のバイナリ探してました。GitHub にも Windows build ないの〜? という Issue が立ってました。
先日久々にチェックしたら去年の9月に作者の人が「Tig が Git for Windows に同梱されたよ!」ってリリースノートのリンクを貼ってました。
Release Git for Windows 2.14.2 · git-for-windows/git · GitHub
Git for Windows は使ってますが、導入日付を見ると 2016年。そこで最新版をインストールしたら、ちゃんと Tig が使えました。
Git for Windows で tig が built-in になってた。https://t.co/i2Mx5af0Q8
— MH (@kondoumh) 2018年1月18日
Git for Windows は MSYS2 を統合しています。MSYS2 は MinGW を補完する MSYS の後継プロジェクト・・とまあ Windows に Unix のシェルとツールチェインを提供する OSS で Cygwin の遠い親戚です。Cygwin よりも Windows との親和性を考慮して開発されています。
なので Git for Windows のシェル環境を VS Code の統合ターミナルで使えばいいじゃないのと思って設定してみました。
"http://terminal.integrated.shell.windows ": "C:\\Program Files\\Git\\bin\\bash.exe"
普通に使えて統合ターミナル内で Tig も動きました。MSYS2 のシェルのオーバーヘッドがあるためか、ターミナルの起動はややもたつきますが、起動してしまえば問題ありません。
MSYS2 ベースなので、Windows のシェルとの相互運用がよくできています。BoW だと Linux に Windows のファイルシステムがマウントされているので、/mnt/c/Users/kondoumh
のようなパスになるのですが、Git for Windows だと /c/Users/kondoumh
とマウントを意識させない感じのパスが使えます。Windows 標準の cmd.exe にコマンド実行を委譲してくれるので start .
でカレントフォルダでエクスプローラを起動してくれますし、notepad
でメモ帳が起動します。
Git と Node.js のエコシステムが普通に使えるので、VS Code のシェルとしては非常に馴染みます。Windows 10 を使っていても Linux のネイティブ開発でない限り、BoW よりこちらの方がよさそうです。
ということで、VS Code + Git for Windows (・∀・)イイ!! という話でした。
*1:統合ターミナルで BoW の記事投稿時は BootCamp で Windows 10 を使ってました