mingw-gvim-transparency を作った話

2 min read読了の目安(約1900字

この記事は、Vim 2 Advent Calendar 2020 23日目の記事になります。

mingw-gvim-transparency って?

mingw-gvim-transparency とは、Windows 向けUnixライク環境であるmsys2に内包されている、mingw-w64 で動作する、gVim で、KoRoNさんの背景透過パッチが適用されてます。

何が嬉しいの?

pacman で管理できる

msys2 のパッケージは ArchLinux でおなじみの pacman コマンドで管理されています。
つまり、ArchLinux の資産をほぼそのまま利用できるわけです。

最近はWSLに活躍の場を奪われてますが、msys2および mingw-w64 でビルドしたバイナリはWindows のバイナリなので、日の目を見ることもあると思います。

+python3 等で困らない

Vim Plugin で時たま使用されている、言語拡張があるのですが、Windowsの場合、python3 をインストールしても、そのままだとエラーになって、使用できなかったりします。
mingw-gvim-transparency はその点、mingw-w64 のパッケージを依存にしているので、確実に使用できるようになってます。

使い方

リポジトリのREADMEに英語で記載済みですが、こちらに日本語で記載します。
/etc/pacman.conf に以下を追記します。

[mingw-raa0121]
Server = https://github.com/raa0121/mingw-gvim-transparency/releases/latest/download
SigLevel = Never

そして、pacman -Sy でリポジトリ一覧を更新して、pacman -S mingw-w64-x86_64-gvim-transparency でインストールです。i686 のパッケージを使用したい場合は、x86_64i686 に読み替えてください。

また、環境変数を設定する必要があります。
msys2 の bash から x86_64 のパッケージを使用する場合は、

VIM=/mingw64/share/vim
VIMRUNTIME=/mingw64/share/vim/runtime

i686 のパッケージを使用したい場合は、6432 に読み替えてください。

Windows の cmd 等からx86_64 のパッケージを使いたい場合は、

VIM=C:\msys64\mingw64\share\vim
VIMRUNTIME=C:\msys64\mingw64\share\vim\runtime

同じく i686 のパッケージを使用したい場合は、6432 に読み替えてください。

今後

mingw-gvim-transparency はビルド後のテストを実施していないです。Windows での gvim のビルドがコケやすいという状態のようで、最近改善されたようなので、手が空いたときに着手したいです。

また、msys2/mingw-w64 向けのパッケージを増やしていきたいところです。

感想・謝辞

このパッケージの計画は2016年7月に、思いつきで初めて、3年以上放置され、Github Actions がリリースされた今年についに目的を達成することができました。毎日最新のVimがビルドされて、 pacman -Syu で更新できる幸せを噛み締めて日々を生きています。

このパッケージを作るに当たり、vim-jp の slack に参加されている皆さんに感謝しています。特にWindowsのVimのビルド周りに詳しい k-takata さん、動作確認やその他色々を教えていただける mattn さんには頭が上がらないです。ありがとうございます。