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

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


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


MinGWのインストール

まずMinGWをインストールします。
http://sourceforge.net/projects/mingw/files/
インストール先はデフォルト(C:\MinGW)のままにして下さい。
変更した場合は後述のPATH設定を変更する必要があります。

x64版をビルドする場合はMinGW64をインストールします。
http://sourceforge.net/projects/mingw-w64/
以降はMinGWで32bit版を作成する手順なのでMinGW64を使用して64bit版のVimをビルドする場合は makeの実行ファイル名やパスを適宜読み替えて下さい。

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

次にhttp://www.vim.orgのダウンロードページからPC用のソースをダウンロードします。

http://www.vim.org/download.php#pc
ver7.3であれば、vim73_46src.zip(数値部分はバージョンに応じて読み替え)です。

以降はC:\tempに zipファイルを解凍して、ソースはC:\temp\vim\vim73\srcに有るとします。
以降は pathやバージョンを適宜読み替えてください。

最新ソース

最新ソースは公式サイトやバージョン管理ツールで取得できます。
最新ソースでビルドする

コンパイル


コマンドプロンプトを使わずコンパイル

  1. バッチファイルをダウンロードして解凍
  2. C:\temp\vim\vim73にmakevim.batをコピー。
  3. makevim.batをダブルクリック。
  4. binに作成された実行ファイルがコピーされます。
MinGWのパス変更やPerl, Python, Ruby 等のインターフェイスを使用する場合は該当部分を有効にして下さい。

(注意)
x64版をビルドするには ARCH=x86-64 を指定する必要があるので適宜変更してください。
mingw32-make -f Make_ming.mak GUI=yes ARCH=x86-64


コマンドプロンプトからコンパイル

コマンドプロンプトはWindowsXpだとスタートメニュー→全てのプログラム→アクセサリにあります。
  1. コマンドプロンプトを開く。
  2. cd C:\temp\vim\vim73\src
  3. set PATH=C:\MinGW\bin;%PATH%
  4. mingw32-make -f Make_ming.mak
コンパイルを最初からやり直すなら make clean を実行します。
mingw32-make -f Make_ming.mak clean

(注意)
x64版をビルドするには ARCH=x86-64 を指定する必要があります。
mingw32-make -f Make_ming.mak GUI=yes ARCH=x86-64


オプションを変更する

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

OLEが有効なgvim.exeを作成する場合

mingw32-make -f Make_ming.mak OLE=yes

コンソール版vim.exeを作成する場合

mingw32-make -f Make_ming.mak GUI=no

Python、Perl、Rubyなどのインターフェイスや各種オプションも変更できます。
各種オプションについては Make_ming.mak を参照して書き換えて下さい。
毎回コマンドから指定するのも面倒なので「バッチファイル」を作成した方がよいかもしれません。

Python、Perl、Rubyなどのバージョンによってエラーが出る場合はVimのソースにパッチを当てると対応されている事があります。
ソースにパッチを当てる


Perl を有効にしたい場合

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


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*/

最新ソースでビルドする

ちゃんとコンパイルできるのを確認したら、最新のソースでビルドするのも良いかもしれません。
最新ソースを取得する推奨方法はバージョン管理ツールを使用することです。

google codeの閉鎖に伴い、githubへ移行するようです。
https://github.com/vim/vim

Windows用Gitクライアントとして Git for Windows(msysgit)などがあります。
http://msysgit.github.io/
https://www.atlassian.com/ja/software/sourcetree/overview

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

メッセージを日本語化するためには 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について

Windows用に本ページで配布している設定ファイルのiconvライブラリは公式の説明通り、以下のものを使用しています。
vim/gvimの実行ファイルと同じディレクトリにコピーして使います。

http://sourceforge.net/projects/gettext/files

iconv.dll 
 "libiconv-1.9.1.bin.woe32.zip"
 binディレクトリの iconv.dll
intl.dll 
 "gettext-runtime-0.13.1.bin.woe32.zip"
 binディレクトリの intl.dll を libintl.dll にリネームして使用します。

iconv.zip


64bit版

MinGW64から抽出すると良いでしょう。

libiconv-2.dll 
 http://sourceforge.net/projects/mingw-w64/files/External%20binary%20packages%20%28Win64%20hosted%29/libiconv/
 libiconv-2.dll を iconv.dll にリネームして使用します。
libintl-8.dll 
 gettext
 libintl-8.dll を libintl.dll にリネームして使用します。

iconv64.zip

パッケージ化

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

vim
 ├─vim74
 └─vimfiles

vimフォルダには作成したバイナリとリネームしたiconv.dllをコピーし、vim74(バージョンによって数値は変更)にはruntimeライブラリをコピーします。
日本語メッセージを使用したい場合はja.poもruntime以下にコピーします。

個人設定ファイル用のvimfilesフォルダは実行バイナリと同じフォルダにvimfilesがあれば優先して読み込まれますが、存在しない場合はマイドキュメントフォルダにあるvimfilesフォルダが参照されます。

あとは設定ファイルの.vimrcに以下を設定してvimフォルダかマイドキュメントフォルダにコピーしてやればとりあえず使えるようになります。

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



Comments