VimをWindows(VC++2017)でコンパイルする
kaoriya版最新版の8.0.0596ではshellでcmdを開けるものの,画面分割では無い.また,場合によっては別ウィンドウの方を閉じなければならないと面倒だったので,単純に最新版のVim組み込みterminalが使いたくて自分でコンパイルしてみた.持ってるマシンも大学の環境も64bitなので,x86_amd64でコンパイルしている.使用ツールは以下の通り.
- VisualStudio2017 Community版(インストール済み)
- github.com/vim/vim を使用
- cmd.exe
- msys2(amd64) ---msys2はmingw64を使用
環境
1. 下準備
- cmd.exeを開く
- C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsx86_amd64.batを叩く
- ~/vim/srcに移動しておく
msys2はまっさらなインストール状態からpacmanで次を叩く(一部重複有) :
base-devel msys2-devel mingw-w64-x86_64-boost mingw-w64-x86_64-toolchain git
gitのインストール時にVimも入っていくが,ここでのmsys2の役割はwinptyのコンパイルなのでこれも気にしない.
2. winptyのコンパイル
- msys2のmingw64を開く
- https://github.com/rprichard/winpty をclone
- ./configure
- make
ここまででwinpty-master/build/にwinpty.dll,exe,lib,winpty-agent.exe, winpty-debugserver.exeの少なくとも5つが生成されていることを確認する.
configureでのエラー
最初これがうまくいかず数週間放置してたが,普通にパッケージインストールして「/bin/mingw64で」叩けば普通に出る.
3. vimをコンパイル
- 1.で次を叩く :
nmake -f Make_mvc.mak GUI=yes IME=yes MBYTE=yes ICONV=yes CSCOPE=yes NETBEANS=yes DEBUG=no
gvim.exe他が生成される.GUI=noにするとvim.exeも生成される.面倒なのでバッチファイルにして入れておく.
4. ディレクトリを作る
- USBメモリから使用しなければならない(特に大学)ため,適当なディレクトリを作って各種ファイルを入れていく.構成は Vimの:terminalを試したいのでソースからbuildした(windows) - Qiitaを参考にした.
- vim.exeも入れておいた.どこかで使い道を見つけるかもしれない.
- エンコーディング対策でlibiconvをmsys2から探して入れておく.
5. 完成
6. 課題
まとめ
意外と簡単だった.Linuxだと毎週ビルド挟んでるので,これでWinでも同じようにできる.
...プラグインに続く...
参考
Visual Studio 2013 で Vim をビルドする - Qiita vim-jp » VisualStudioを使ってのビルド方法 Vimに:terminalが実装され、Windowsではコマンドプロンプトが動くと知り試してみた - non vorrei lavorare GitHub - rprichard/winpty: A Windows software package providing an interface similar to a Unix pty-master for communicating with Windows console programs. Vim/GVimのビルドと実行環境の作成 - fudist