Help us understand the problem. What is going on with this article?

Ubuntuでkaoriyaパッチとmigemoを有効にしてVimをビルド

More than 5 years have passed since last update.

UbuntuでKaoriYa-Vimを使いたい

Windowsでは香り屋さんの配布しているコンパイル済みVimが使えます。またMacでは他の有志が香り屋パッチを当てた MacVim-kaoriya のバイナリを使うことができる。

自分はUbuntuでVimを使っているので、香り屋版をUbuntuで使えないか調べたところ、パッチを当てて自分でコンパイルすることが可能だということでやってみた。またローマ字のまま日本語検索が可能なcmigemoも使えるようにした。

いくつかのサイトを参考にさせてもらったが、自分の環境だといくつかハマりどころがあったので備忘録として残しておく。

コンパイル環境

  • Ubuntu 14.10(64bit版)
  • gcc version 4.9.1 (Ubuntu 4.9.1-16ubuntu6)
  • Vimのビルドに必要な依存パッケージ類は apt-get buid-dep vim でインストール済み
  • cmigemoは別途インストール
  • Mercurialも別途インストール
  • aclocal, autoconf も別途インストール

Mercurialの設定

MQ(パッチ)を使用するために ~/.hgrc に以下を記述しておく

[extensions]
mq =

Vimのソースコードを取得

Vimの公式リポジトリをクローンする。この時に香り屋パッチのリポジトリも一緒に取得する。

% hg qclone https://vim.googlecode.com/hg ./vim -p https://bitbucket.org/koron/vim-kaoriya-patches

パッチリポジトリを更新

パッチリポジトリを更新する。

% hg log --mq | less

を見ると 最新のリビジョン: 104:4b5bd3b04e84 が update for 20150301 となっているので、今回はそのままのリビジョンを使う。

もしVim本体とバージョンを合わせるためにパッチリポジトリのチェンジセットを変更する必要がある場合は以下のコマンドを使う。

% hg update 4b5bd3b04e84 --mq
  • "4b5b..." はチェンジセットの数字、リビジョンが特定できれば先頭数文字だけで可

Vim本体のリポジトリを更新

Vim本体のリポジトリもバージョンを合わせる。

% hg tags | less

香り屋版の最新のバイナリはver.7.4.648をコンパイルしているので、それに合わせる。

% hg update v7-4-648

ついでに、後々コンパイルし直すときのためにブランチを切っておく。

% hg branch kaoriya-7.4.648

パッチ一覧

% hg qseries

とすると、パッチの一覧が表示できる。

パッチの適用

% hg qpush -a

ですべてのパッチを適用する。

cmigemoに対応したconfigureの作成

kaoriyaパッチは適用したものの、このままconfigureするのではcmigemoは使えない。


% cd ~/vim/src
% mv configure.in configure.ac
% aclocal
% autoconf

configure.in をconfigure.acにリネームしたのは、一度そのままaclocalを実行すると「aclocalの入力はconfigure.inではなくconfigure.acです」という意味の警告が出たため。そのままconfigureすると、--enable-migemoが有効なオプションではないと言われてしまう。

※ 2015/03/27追記

コメント欄でご指摘いただきました。上に書いた方法はちょっと変わったやり方だったようです。
正式なやり方は下記のように src ディレクトリで make autoconf とすることで、 src/auto/configure が作成される。

% cd ~/vim/src
% make autoconf

Vimのコンパイル

ここまで来たら、あとは ./configure してコンパイルするだけ。とはいっても、ここもいくつかハマりどころがあった。

configure オプション

% LIBS="-lmigemo" ./configure \
  --prefix=/usr/local \
  --with-features=huge \
  --enable-gui=gnome2 \
  --enable-multibyte \
  --enable-perlinterp=dynamic \
  --enable-pythoninterp=dynamic \
  --enable-tclinterp \
  --enable-rubyinterp=dynamic \
  --enable-luainterp=dynamic \
  --with-lua-prefix=/usr \
  --with-luajit \
  --enable-gpm \
  --enable-cscope \
  --enable-fontset \
  --enable-migemo \
  --enable-fail-if-missing
  • LIBS="-lmigemo"としてやるのは参考にしたページにも書かれていた通り。
  • インストール先のパスの指定は--prefix=/usr/local のようにする。他の場所にする場合は適宜修正。
  • スクリプト言語のインタープリタはとりあえずdynamicをつけておいた。
  • --enable-migemo オプションを指定するのを忘れずに。

perlオプション指定時のエラー

今回の環境では、--enable-perlinterpオプションを指定するとmake時にエラーが出てビルドに失敗した。

この記事を書く少し前に他のマシンで試した際は特に問題がなかった。香り屋のページVim 7.4.648 (2015/03/01版) 配信 - KaoriYaにコンパイル時に使用するPerlのバージョンを5.20.1に変更と書いてあったので合わせてみたが効果なし(ちなみにplenvでPerlのバージョンを管理している)。

理由がよくわからず、自分の用途ではperlオプションがどうしても必要というわけではないので、今回はperlオプションを指定せずにconfigureした(どなたか同じような環境でうまくいったという方がいれば教えてください)。

※2015/03/22 追記

plenvでインストールしたperlではなく、元々Ubuntuにインストールされているバージョンを使用するとmake時にエラーは出なくなった。

plenvで管理していても、

% plenv versions
* system (set by /home/hogeuser/.plenv/version)
  5.20.1
  5.20.2
  5.21.9

のように、 system と表示されるバージョンになっていればOK。

make & インストール

configureして特に問題なければいよいよコンパイルしてインストール。

% make
% sudo make install

パスを通す

今回は/usr/localにインストールしたのですでにapt-getなどで入れているVimはそのまま残っている。そのため単にコマンドラインでvimと叩くとパスの通っている/usr/bin/vimが起動されてしまう。

.bashrc や .zshrc に以下のように追記してインストール場所にパスを通しておく。

export PATH=/usr/local/bin:$PATH

+kaoriya +migemoになっていることを確認

コマンドラインで

% vim --version

とうつか、Vimを起動してから

:version

とうち、+kaoriya +migemo と表示されてれば無事に香り屋パッチとcmigemoは有効になっている。

お疲れ様でした。

参考にしたページ

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away