「Androidアプリ開発メモ」というブログのタイトルですが、サーバサイド開発の際はvimを使ってPerlやPHPのコーディングをする事が多いので、たまにはvimの話を書いてみます。
今回はコーディングを快適にするためにneocomplcacheを入れてみましょう。
neocomplcacheはvimでeclipseなどのIDEのようなコード補完を実現するプラグインです。
インストールは以下からzipをダウンロードして、.vimフォルダ以下に展開します。
https://github.com/Shougo/neocomplcache
次に.vimrcに以下のような設定をすると補完が効くようになります。
let g:neocomplcache_enable_at_startup = 1
※neocomplcacheは機能が非常に多いためここでは全部の詳しい解説は出来ませんが、以下が参考になると思います。
http://vim-users.jp/tag/neocomplcache/
また、普段テンプレートエンジンはtt(template toolkit)を使用しているため、tt用の補完もしたいのですがデフォルトだと *.tt の拡張子がvimに認識されません。
そこで以下の記事を参考に $HOME/.vimの下にfiletype.vimというファイルを作成します。
snippetsEmu.vimを使っていて、補完が効かない人はfiletypeが原因かもしれない
これでttの補完候補が表示されるようになりました。
ただ、テンプレートを書く際はttのコードだけでなくhtmlのタグも書く事が多いのですが、このままではTTのファイルを編集している時にHTMLの補完が出来ません。
困ったな、、、と思ってたら解決策が見つかりました!
一般的に知られていないことだが、'filetype'は複数の値を設定できる。例えば:setfiletype
http://whileimautomaton.net/2008/09/07213145
c.doxygenなどとピリオドで区切った名前の列によって複数の値を持たせることができる。個人的には、複数の値を持つ場合は「compound
filetype」、通常の値の場合は「simple filetype」と呼び分けている。
上記を参考に、filetype.vimの
au! BufRead,BufNewFile *.tt setfiletype tt
を以下のように変更
au! BufRead,BufNewFile *.tt setfiletype tt.html
参考にさせていただいた記事の方々、ありがとうございました。
neocomplcacheはコードのスニペットも補完出来ますし、またスニペット自体を自分で追加出来たりと便利な機能が多いですね。
最初はスニペットの機能があることを知らなかったのでsnipMateなどを入れていましたが、使ってるうちにneocomplcacheだけで足りる事が分かって驚きました。