今回のVimconf2018でなんの成果も得られませませんでした!
訳: Vimconf2018行けなかった…

WindowsでVimのビルドしてみようか!

本当はVimconfの感想記事とか書こうと思ったのですがなんの成果も得られなかった為急遽別ネタを書きます。
msvc(VisualStudio)でビルドします。
ついでにpython3/terminalを有効にします。
(luaもrubyもperlも自分が使ってるプラグインには必要無いので…)

今回使用した環境

  • Windows10
  • 快適なネット接続環境

また、ビルドに使うマシンのスペックについてはVisualStudio 2017 CommunityEditionの システム要件に則ります。

てじゅーん

今回は D:\build-vim 以下にビルドに必要なものを放り込みます。

必要なものインストール

VS2017CE

今回はコミュニティエディションを使います。

  • Microsoftのダウンロードページから コミュニティ をダウンロードして実行
  • Nextを連打していくとインストールするコンポーネントを選択する画面が出るので、以下のコンポーネントを選択
    • 「ワークロード」タブの「C++ によるデスクトップ開発」
Python3

既に純正PythonやAnacondaをインストールして使ってる人は特に追加で必要なものはありません。 初めてです!という人は以下のPythonをインストールして下さい

※ embededdableはvimのコンパイルに必要なヘッダファイルなどが無いので今回は使えません。

vim

現在vimはgithub上で開発が進められているので、git cloneすればおk

git clone https://github.com/vim/vim D:\build-vim\vim

ビルドする

毎回ビルドコマンド打つのもつらいので、今回はビルド用のbatファイルを作っておきます。

@echo off

set PATH=%SystemRoot%
set PATH=%PATH%;%SystemRoot%\System32

set INCLUDE=
set LIBPATH=

@call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64

set PY3= PYTHON3="<<Python3インストール先ディレクトリ>>" PYTHON3_VER=36 DYNAMIC_PYTHON3=yes PYTHONThREEDLL=<<Python3インストール先ディレクトリ>>python36.dll

set OPT= CPU=AMD64 FEATURES=HUGE USE_MSVCRT=yes MAP=no IME=yes MBYTE=yes ICONV=yes XPM=no TERMINAL=yes DEBUG=no
set OPT2= %PY3%

pushd D:\build-vim\vim\src
rmdir /s /q ObjCULYHAMD64 ObjGXULYHAMD64
nmake -f Make_mvc.mak clean
nmake -f Make_mvc.mak %OPT% %OPT2% GUI=no
nmake -f Make_mvc.mak %OPT% %OPT2% GUI=yes DIRECTX=yes

Python3インストール先ディレクトリを変更して下さい。
また、途中nmakeを2回実行しているのはgvimとvimをそれぞれビルドしているからです。
上記ファイルを作り終わったらコマンドプロンプトから実行してみて下さい。
エラーが出ていなければ D:\build-vim\vim\src 配下にvim.exeとかgvim.exeが出来ているはずです。

配置

vimは実行ファイルの他にもいくつか必要なファイルがあるため、それを配置します。
今回は C:\vim への配置を例にしてみます。

XCOPY /D /S /R /Y /I D:\build-vim\vim\runtime\* C:\vim\vim81\
pushd D:\build-vim\vim\
move src\*.exe C:\vim\
COPY vimtutor* C:\vim\

テーレッテレー!

C:\vim にパスを通しておけばいつでも最新のvimが使えますね!
ちなみに私は毎朝ログイン時にビルドバッチが走るようにしています。(vimのそーす更新もbatに入れ込めばおk)

まとめ

@echo off

set PATH=%SystemRoot%
set PATH=%PATH%;%SystemRoot%\System32

set INCLUDE=
set LIBPATH=

@call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64

set PY3=PYTHON3="<<Python3インストール先ディレクトリ>>" PYTHON3_VER=36 DYNAMIC_PYTHON3=yes PYTHONThREEDLL=<<Python3インストール先ディレクトリ>>python36.dll

set OPT=CPU=AMD64 FEATURES=HUGE USE_MSVCRT=yes MAP=no IME=yes MBYTE=yes ICONV=yes XPM=no TERMINAL=yes DEBUG=no
set OPT2=%PY3%

pushd D:\build-vim\vim\src
nmake -f Make_mvc.mak clean
nmake -f Make_mvc.mak %OPT% %OPT2% GUI=no
nmake -f Make_mvc.mak %OPT% %OPT2% GUI=yes DIRECTX=yes

pushd D:\build-vim\vim\
XCOPY /D /S /R /Y /I runtime\* C:\vim\vim81\
move src\*.exe C:\vim\
COPY vimtutor* C:\vim\

ビルドと移動を一纏めにしたものです。
私の環境だとこれで問題無いのですが、実は昔に必要なものを入れていて上記設定だけだと足りないみたいな事があるかもしれないので、
なにかあったら修正コメントなんでも下さい!!
来年はVimconf行きたい…