ホーム‎ > ‎VimとUTF-8‎ > ‎

Vim/GVimのビルドと実行環境の作成


このページではMinGWでWindows用の Vim/GVimをビルドして、Vim/GVimを実行可能な環境を作成する手順について書かれています。
android用Vimについては以下を参照してください
android用Vimのビルドと実行環境の作成


MinGWのインストール

まずMinGWをインストールします。
最近のVimのソースはmsys2のMinGWを前提にしていて、普通のMinGWではビルドできない事があるのでmsys2をインストールしてください。
http://msys2.github.io/
使用環境に応じて32bit版か64bit版かを選んでください。

インストールしただけでは起動するだけなので、シェルやコアライブラリをインストールします。
update-core

いったんmsys2のウィンドウ自体を(×ボタンで)終了して再起動。
パッケージマネージャでアップデートします。

pacman -Su

以下のようなメッセージが出た場合は、一旦終了してあらためてアップデートを実行します。
警告: terminate MSYS2 without returning to shell and check for updates again
警告: for example close your terminal window instead of calling exit
ウィンドウ自体を終了した場合はmsys2_shell.cmdでmsys2を起動可能です。

あらためてアップデートしたら終了します。
pacman -Su
exit



次にMinGWをインストールします。

MinGW32

msysディレクトリのmingw32.exeを実行してからインストール
pacman -S mingw-w64-i686-toolchain

MinGW64

msysディレクトリのmingw64.exeを実行してからインストール
pacman -S mingw-w64-x86_64-toolchain

Vimのソースをダウンロード

次にVimのソースをダウンロードします。
https://github.com/vim/vim

Windows用Gitクライアントとして Git for Windows(msysgit)などがあります。

ビルド

32bit版

msys2のmingw32.exeを実行してから、Vimのソースのsrcディレクトリへ移動してビルドします。

GVim

cd path/to/vim/src

mingw32-make -f Make_ming.mak GUI=yes
ARCH=i686 clean
mingw32-make -f Make_ming.mak GUI=yes ARCH=i686 FEATURES=HUGE


実行ファイルはsrcにあるので適当な場所へコピーします。
cd path/to/vim/src

cp *.exe path/to/target/directory
cp xxd/*.exe path/to/target/directory


GVimExt(Windowへの関連付け)が必要なら以下のファイルをコピーして使用します。
(GVimExtはinfファイルを右クリックしてインストールします)
cd path/to/vim/src

cp GvimExt/*.dll path/to/target/directory/GVimExt

cp GvimExt/*.reg path/to/target/directory/GVimExt
cp GvimExt/*.inf path/to/target/directory/GVimExt
cp GvimExt/*.txt path/to/target/directory/GVimExt

Vim

DOS版も必要ならGUI=noを指定してビルドします。

cd path/to/vim/src

mingw32-make -f Make_ming.mak GUI=no
ARCH=i686 clean
mingw32-make -f Make_ming.mak GUI=no ARCH=i686 FEATURES=HUGE

64bit版

msys2のmingw64.exeを実行してビルドします。
32bit版との違いはARCH=x86-64を指定するかどうかだけです。

GVim


cd path/to/vim/src

mingw32-make -f Make_ming.mak GUI=yes ARCH=x86-64 clean

mingw32-make -f Make_ming.mak GUI=yes ARCH=x86-64 FEATURES=HUGE

Vim


cd path/to/vim/src

mingw32-make -f Make_ming.mak GUI=no ARCH=x86-64 clean

mingw32-make -f Make_ming.mak GUI=no ARCH=x86-64 FEATURES=HUGE

Windowsから直接ビルド

実際問題としてはMinGWのbinにパスを通せばmsys2のシェルを起動しなくてもビルド可能です。
64bitの場合
set PATH=C:\msys64\mingw64\bin;%PATH%

これを利用するとWindows用のバッチファイルを作成して、msys2を起動すること無くビルドはダブルクリックで行うことが可能になります。

日本語メッセージファイル

メッセージを日本語化するためには vim.moファイルが必要です。

vim.moは /src/po/ja.po を変換して作成します。
poファイルを moファイルに変換するにはhttp://www.poedit.net/のような専用ソフトを使う、python等のスクリプトを使用するなど多くの方法がありますが、どのような方法でも構いません。

例えばPythonをインストールしている場合は msgfmt.pyを利用して以下のように変換可能です。
python msgfmt.py ja.po
msgfmt.pyは tools/i18n/にあるのでパスが通っていない場合は次のように変換します。
c:/python27/python c:/python27/tools/i18n/msgfmt.py ja.po

作成した ja.moは vim.mo にリネームして $VIMRUNTIME/lang/ja/LC_MESSAGES へコピーします。
詳しくは :help mlang.txtを参照してください。

iconv等のDLLについて

Vimでiconv等を利用するためにはdllが必要です。
dllはビルドに使用したMinGW32またはMinGW64のbinディレクトリからVim/GVimの実行ファイルと同じディレクトリにコピーしてください。

32bit版

  • libiconv-2.dll
  • libintl-8.dll

64bit版

  • libiconv-2.dll
  • libintl-8.dll
  • libwinpthread-1.dll

パッケージ化

あとは作成したバイナリやライブラリをパッケージ化します。
例えば以下のようにvimフォルダを作成します。

vim
 ├─vim74
 └─vimfiles

vimフォルダには作成した実行ファイルとlibiconvやlibintl等のdllをコピーし、vim74(バージョンによって数値は変更)にはsrc/runtimeの中身をコピーします。
日本語メッセージを使用したい場合はvim.poも vim74/lang/ja/LC_MESSAGESにコピーします。

通常個人設定ランタイムライブラリはvimfilesから読み出されますが、$HOME(Vimを起動して:echo $HOMEで確認可能)に_vimrc(.vimrc)とvimfilesフォルダがある場合は$HOMEが優先して参照されます。

あとは設定ファイルの_vimrc(.vimrc)に以下を設定してvimフォルダか$HOMEにコピーしてやればとりあえず使えるようになります。

set nocompatible
set enc=utf-8
set fencs=ucs-bom,utf-8,iso-2022-jp,euc-jp,cp932,utf-16le,utf-16,default,latin1,utf-8

オプションを変更する

必要に応じて各種オプションを設定するか、makeファイルを書き換えてビルドして下さい。

OLEを無効化したgvim.exeを作成する場合

mingw32-make -f Make_ming.mak GUI=yes OLE=no

Python、Perl、Rubyなどのインターフェイスや各種オプションも変更できます。
各種オプションについては Make_ming.mak を参照して書き換えて下さい。


Perl を有効にしたい場合

コンパイルのオプション指定
mingw32-make -f Make_ming.mak PERL=C:/Perl PERL_VER=516 DYNAMIC_PERL=yes
pathや使用しているバージョンは環境に応じて変更してください。


Python を有効にしたい場合

コンパイルのオプション指定
mingw32-make -f Make_ming.mak PYTHON=C:/Python27 PYTHON_VER=27 DYNAMIC_PYTHON=yes
pathや使用しているバージョンは環境に応じて変更してください。
Pythonのバージョンによってはパッチが必要です。

vim 7.3以降では python2 と python3 の両方のインターフェイスを有効に出来ます。

mingw32-make -f Make_ming.mak PYTHON=C:/Python27 PYTHON_VER=27 DYNAMIC_PYTHON=yes PYTHON3=C:/Python33 PYTHON3_VER=33 DYNAMIC_PYTHON3=yes


Ruby を有効にしたい場合


Ruby 1.8 の場合

コンパイルのオプション指定
mingw32-make -f Make_ming.mak RUBY=C:/ruby183 RUBY_VER=18 RUBY_VER_LONG=1.8 DYNAMIC_RUBY=yes

Ruby 1.9.3 の場合

コンパイルのオプション指定
mingw32-make -f Make_ming.mak RUBY=C:/ruby193 RUBY_VER=19 RUBY_VER_LONG=1.9.1 DYNAMIC_RUBY=yes

pathや使用しているバージョンは環境に応じて変更してください。
Rubyのバージョンによってはパッチが必要です。
Ruby関係のオプションは互換性のない変更が何度かあったので必ずmakefileのコメントを参照するようにしてください。


ActiveScriptRuby等で dll名が異なる場合はオプション指定を追加しなければいけない場合があります。
RUBY_PLATFORM=i386-mswin32_100 RUBY_INSTALL_NAME=msvcr100-ruby191

config.hでエラーが出る場合

注意 : Ruby対応の Vim/GVimを MinGWでコンパイルしてエラーが出る場合は Rubyの config.hを一時的に書き換える必要が有ります。
          コンパイル後は元に戻してかまいません。
          Rubyは http://rubyinstaller.org がヘッダを書き換える必要がないので良いかもしれません。

書き換えるファイル
C:\ruby\lib\ruby\1.8\i386-mswin32\config.h

config.h 行頭の三行をコメントアウトします。
改変前
#if _MSC_VER != 1200
#error MSC version unmatch
#endif
改変後
/*#if _MSC_VER != 1200
#error MSC version unmatch
#endif*/


Comments