公式インストーラー
Windows用Vimの公式インストーラーは、vim.orgで公開されています。Vimの原作者である Bram Moolenaar 氏による唯一の公式ビルドで、現時点で公開されているバージョンは 8.1.0001 (ファイル名: gvim81.exe
)です。ただ更新頻度は低く、大抵はマイナーバージョンアップの直後や、重大なセキュリティー問題があった場合などにしか更新されません。
公式ナイトリービルド
そこで、私と Christian Brabandt 氏 (@chrisbra) で立ち上げたのが、vim-win32-installerです。これは、毎日ドイツ時間の午前0時にVimの公式リポジトリーをチェックし、もし更新があれば、インストーラーとzipパッケージを自動で作成するというものです。自動ビルドであるため、不安定なバージョンが公開されることもありますが、最新バージョンを簡単に試せるという利点があります。(本日(12/13)時点での最新バージョンは 8.1.0578。)
GitHubのVim organizationの配下にある公式のナイトリービルドですが、あくまでナイトリービルドであるため、公式なリリースではなく、準公式的な扱いである点には注意が必要です。
NSIS
いずれのインストーラーもNSISというソフトを使って作成されているのですが、以下のような問題が指摘されてきました。
- 見た目が古臭い。
- インストール中・アンインストール中にコマンドプロンプトが開かれて邪魔だ。
- インストール中・アンインストール中に何度もメッセージボックスが開かれて邪魔だ。
- メッセージボックスのせいで、サイレントインストールができない。
- 多言語対応していない。
以下はスクリーンショットの例です。
最初に表示されるメッセージボックス:
コンポーネント選択画面:
MUI2対応インストーラー
これらを解消するために作られたプロジェクトが Guopeng Wen 氏 (@gpwen) による、vim-installer-mui2です。
- NSISのModern UI 2 (MUI2)という機能を利用することで、見た目を刷新するとともに、多言語にも対応。
- コマンドプロンプトを開かないように修正。
- メッセージボックスを開かないようにし、必要な情報はインストーラーの画面上に表示するように修正。
- サイレントインストールに対応。
このように、指摘されていた問題はすべて解消されています。
このプロジェクトは、かつては本家に取り入れてもらうべく精力的に開発されていたのですが、本家に取り込まれる様子がなかったことからか2011年ごろには開発が停止してしまいました。
取り込まれなかった原因
gpwen氏のMUI2インストーラーが本家に取り込まれなかった理由は、おおざっぱに言うと変更が大きすぎたからでした。
実は、現行のインストーラーはNSISによるユーザーインターフェース部分と、install.exe
という実行ファイルによるシステムへの登録処理部分の2つに分かれています。インストーラーの実行中にコマンドプロンプトが開かれるのは、このinstall.exe
が実行されているからなのです。
gpwen版では、このinstall.exe
の処理もすべてNSIS部分に取り込んでしまっていました。これにより本家に対する変更が非常に大きなものになってしまっていました。(スクリプトのサイズが元の10倍以上。)
一方、人によっては、zipパッケージを解凍し、install.exe
を手動で実行してシステムへの登録のみ行うという使い方をしています。そのため、install.exe
を削除するわけにはいかず、このままではNSIS部分とinstall.exe
で同じような処理を二重管理せざるを得ません。この二重管理を避けたいというのも取り込まれなかった理由です。
新たなMUI2版
そこで今回、変更を少なくし、コードの二重管理も避けた新たなMUI2インストーラーを作成することにしました。今までの指摘に対応したうえで、さらにいくつか改善を行っています。
- UIはgpwen版をベースとし、MUI2のきれいなUIを使いつつ、多言語にも対応。
- システムへの登録部分は
install.exe
を使いつつ、実行時にコマンドプロンプトを表示しないように変更。(実は、gpwen版もかつてはそのような実装だったようですが。) - 邪魔なメッセージボックスもgpwen版同様に削除。
- サイレントインストールに対応。
- HighDPIにも対応し、高DPI環境での表示を改善。
- インストール項目の選択を記憶し、次回のインストールでは自動で同じ項目を選択する。
こうして出来上がったのが、PR #3501 です。スクリプトサイズも本家の2倍程度で済んでいます。
以下はスクリーンショットの例です。
見た目もきれいになり、日本語表示されているのが分かります。
(VimConf Hackathonでも)Bram氏からの反応も悪くなく、数週間から数カ月のうちに本家に取り込まれるかもしれません。todo.txtにも以下のように記載されています。
Patch to simplify nsis installer. (Ken Takata, 2018 Sep 24, was #3479)
Now included in #3501, using MUI2. Use the zip file to get the binary files:
https://github.com/vim/vim/files/2475621/nsis-icons.zip
Ready to include now.
Improve the installer for MS-Windows. There are a few alternatives:
- mui2 installer improved by Ken Takata (2018 Sep 29)
- Installer from Cream (Steve Hall).
- Modern UI 2.0 for the Nsis installer. (Guopeng Wen)
https://github.com/gpwen/vim-installer-mui2
- make it possible to do a silent install, see
http://nsis.sourceforge.net/Docs/Chapter4.html#4.12
Version from Guopeng Wen does this.
- MSI installer: https://github.com/petrkle/vim-msi/
- The one on Issue 279.
Problem: they all work slightly different (e.g. don't install vimrun.exe).
How to test that it works well for all Vim users?
今後について
上記の新MUI2インストーラーは、本家にはまだ取り込まれていませんが、vim-win32-installerでは既に先行してダウンロードできるようになっています。リリースページのgvim_8.1.xxxx_x86-mui2.exe
が32bit版、gvim_8.1.xxxx_x64-mui2.exe
が64bit版です(ファイル名に-mui2
が付いている)。ぜひ、ダウンロードして現行のインストーラー(gvim_8.1.xxxx_x86.exe
)と比較してみてください。
実際に使ってみて、意見や要望などがあれば以下にお寄せください。
2018-12-22 追記:
新インストーラーが v8.1.0616 として本体にマージされました。vim-win32-installerでは、v8.1.0618以降で新MUI2版が正式なインストーラーとなっています。
参考: 第三者によるインストーラー
公式版ではないWindows用インストーラーとしては以下のようなものもあります。
- Vim 8.1.0577 builds for Windows -- tux氏によるビルド。最新の言語インターフェースに追従しているのが特徴。
- Cream :: a modern configuration of the Vim text editor -- 使いやすい設定を追加したCream版と、そうではないwithout Cream版がある。最近は更新が滞っている模様。
- petrkle/vim-msi: Unofficial msi package of vim and gvim. -- MSI形式のインストーラー。
- jcasale/vim-msi: A WIX project that packages gvim into a Windows MSI. -- もう一つのMSI形式のインストーラー。