CentOSにvim7を入れてphp補完

emacsphp-modeを最低限試してみたので、今度はvimでやってみました。どうやらvim7で実装されたomni補完(候補のリストが出てきてそこから選ぶ系の補完)がいいらしいんだけど、CentOSyumで提供されているのは6.3。タブも使えません。そこで、手動で入れるところからスタート。

vim7のインストール

まず、yumで入れたvimを削除しようと、yum remove vim* して削除対象パッケージを見てみると…

 vim-enhanced            i386       1:6.3.046-0.40E.7  installed         956 k
 vim-common              i386       1:6.3.046-0.40E.7  installed         3.4 M
 vim-minimal             i386       1:6.3.046-0.40E.7  installed         459 k
 sudo                    i386       1.6.7p5-30.1.3     installed         336 k

いや、sudoとか消されても困るんですけど。自分で入れたのはvim-enhancedとそれに依存するvim-commonなので、とりあえずその2つ だけ削除することに。

次に、ここを参考にしてビルド。configureオプションに --prefix=/opt/vim を追加してmake。

/optにインストールするのは尾藤さんお勧めの設定。

そんなこんなで、無事にvim7インストール完了です。これでやっと補完を試せる準備が整いました。

オムニ補完でphpの関数をリストアップ

を見ると、ファイルタイプ毎に補完用の辞書を自動設定してくれるらしい。まずは試しに、コマンドラインから、

:set omnifunc=phpcomplete#CompletePHP

と入れて、^x-^oでphpの関数補完ができました。流石に辞書ファイルからキーワード補完してるだけあって速いし、おまけに引数のリストも表示してくれるのが素敵です。

最初は、うまく補完してくれなくてあれ?と思ったんですが、<?phpの外では補完が効かないようになっているようです。なかなかやりおるわい。

他にも何かと充実してそうなので、ひとまずオンラインの作業はvimでやっていく方向で。emacsでもキーワードリストのファイルを作って、それを元に補完するlispとか書けばいけるんだろうけど、流石にそこまでの労力はかけてられないので… 誰かxyzzyphp-mode をemacsに移植したりしないもんですかね?