kondoumh のブログ

- とあるソフトウェアエンジニアのめったに更新されないブログ -

VS Code の統合ターミナルで Tig が標準装備された Git for Windows を使う

タイトル通りです。

以前、VS Code の統合ターミナルで BoW(Bash on Ubuntu on Windows) を指定して macOS に近づいた! と書いてました。

blog.kondoumh.com

macOS や Linux では Git リポジトリの Text-mode interface である Tig を愛用しています。

github.com

BoW の時は Ubuntu に導入した Tig がそのまま統合ターミナルで動いたので喜んでたのですが、会社マシンはいまだに Windows 7 で BoW は使えませんし、自宅 MacBook の仮想マシンの Windows 10 にはわざわざ BoW とか入れてません*1。Gygwin とか今更入れたくないしなーと時々思い出したように Windows 版のバイナリ探してました。GitHub にも Windows build ないの〜? という Issue が立ってました。

github.com

先日久々にチェックしたら去年の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 は MSYS2 を統合しています。MSYS2 は MinGW を補完する MSYS の後継プロジェクト・・とまあ Windows に Unix のシェルとツールチェインを提供する OSS で Cygwin の遠い親戚です。Cygwin よりも Windows との親和性を考慮して開発されています。

MSYS2 homepage

なので Git for Windows のシェル環境を VS Code の統合ターミナルで使えばいいじゃないのと思って設定してみました。

"http://terminal.integrated.shell.windows ": "C:\\Program Files\\Git\\bin\\bash.exe"

普通に使えて統合ターミナル内で Tig も動きました。MSYS2 のシェルのオーバーヘッドがあるためか、ターミナルの起動はややもたつきますが、起動してしまえば問題ありません。

f:id:kondoumh:20180125121712p:plain

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 を使ってました