読者です 読者をやめる 読者になる 読者になる

Linuxでkaoriyaパッチ&migemoを有効にしてvimを最新ソースからインストールした

Linuxで、kaoriyaパッチを当ててmigemoを有効にしてvimをインストールできたので備忘録のためにメモ。

前準備

cmigemoをインストールしておく必要があります。
#cmigemoのインストールは、前記事をご参照ください。

kaoriyaパッチを当てる

vim最新ソース、kaoriya版vimを取得し、vim最新ソースにkaoriya版vimに入っているpatchを当てます。

$ mkdir ~/work
$ cd ~/work
$ hg clone https://vim.googlecode.com/hg/ vim
$ cd ~/work
$ wget http://files.kaoriya.net/goto/vim73w32
$ unzip vim73-kaoriya-win32-YYYYMMDD.zip
$ cp -pr ~/work/vim73-kaoriya-win32/patch ~/work/vim/
$ cd ~/work/vim
$ patch -p 1 < patch/kaoriya-hg.diff

migemoを有効にする

このままconfigure & makeで インストールしてもmigemoは有効になりません。
autoconfでconfigure.inからconfigureを作成する必要があります。
autoconfとautomake(aclocal)が必要なのでなければインストールします。(autoconfは、yumでインストールした版だと古いらしくエラーが出るので、autoconfインストールに必要なm4も合わせてソースからインストールしました。インストール先は/usr/binに上書き。/usr/local/binでもいいかも)

$ sudo yum -y install automake
$ cd ~/work
$ wget ftp://ftp.gnu.org/gnu/m4/m4-1.4.16.tar.gz
$ tar zxvf m4-1.4.16.tar.gz
$ cd m4-1.4.16
$ ./configure --prefix=/usr
$ make
$ sudo make install
$ cd ~/work
$ wget ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
$ tar zxvf autoconf-2.69.tar.gz
$ cd autoconf-2.69
$ ./configure --prefix=/usr
$ make
$ sudo make install

autoconf,automakeがインストールできたら、以下で、migemoに対応したconfigureを作成します。

$ cd ~/work/vim/src
$ aclocal
$ autoconf

vimインストール

後はconfigure時にLIBS="-lmigemo"としてやり(しないとmake時にエラーが出る)、configureのオプションで、--enable-migemoを指定すればmigemoを有効にしてvimをインストールできます。
migemoのインストール先によっては、LDFLAGS=""でmigemoのlibのディレクトリも指定する必要があるかもしれません。
--enable-migemo以外のオプションはお好みに応じて変更してください。前々記事もご参照ください。

$ cd ~/work/vim/src
$ LIBS="-lmigemo" ./configure \
  --with-features=huge \
  --disable-gui \
  --without-x \
  --disable-gpm \
  --disable-nls \
  --enable-multibyte \
  --enable-rubyinterp \
  --enable-pythoninterp \
  --enable-perlinterp \
  --enable-cscope \
  --enable-migemo
$ make
$ sudo make install

共有ライブラリパスの指定

migemoのインストール先によってはvim起動時に以下の様なエラーが出るかもしれません。

vim: error while loading shared libraries: libmigemo.so.1: cannot open shared object file: No such file or directory

/usr/local/libにインストールした場合、/etc/ld.so.confに共有ライブラリ配置先を追加し、ldconfigで共有ライブラリを認識すれば起動できるようになります。

$ echo /usr/local/lib | sudo tee -a /etc/ld.so.conf
$ sudo /sbin/ldconfig

終わりに

これで、Linuxでも、g/、g?でmigemo検索ができるようになりました。やったね!
ちなみに、前記事で設定したMigemoプラグインとg/、g?の違いはあまり良くわかっていません。。。
g/、g?だと、最初に引っかかるものだけインクリメンタルサーチっぽく飛んでくれるからこちらのほうが便利、あとタイプ数も少ないしねw

参考URL

以下を参考にさせていただきました。

CentOS 5.2にautoconf 2.6.7をインストール - イノベートな非日常