MacVimでRailsの環境を作る 〜neocomplcacheインストール〜
いろいろなキーワードの補完リストを自動的に表示してくれる
neocomplcache
というvimスクリプトを入れました。
autocomplpopみたいなスクリプトです。
主な機能
- シンタックス補完
- 辞書ファイルの補完
- タグファイルの補完
- ファイル名の補完
- オムニ補完
- スニペット補完
これだけでも「おぉ!」と思いましたが、同じような機能補完はautocomplpopでもできるんですよね。
ただ、以下のような理由からneocomplcacheを選択しました。
- カスタマイズ項目が豊富
- プラグインで拡張が可能
SnipMateのトリガーを補完リストに表示できる- autocomplpopでもSnipMateのトリガーを補完リストに表示できるが、パッチを当てる必要があったり、対象が大文字の場合のみだったりと使いにくい
インストール
下のurlよりダウンロードして、『.vim』フォルダにインストール。
shougo’s neocomplcache at master – github
vimrcの設定
こんな感じです。
" neocomplcache
let g:NeoComplCache_EnableAtStartup = 1
" 大文字小文字を区別する
let g:NeoComplCache_SmartCase = 1
" キャメルケース補完を有効にする
let g:NeoComplCache_EnableCamelCaseCompletion = 1
" アンダーバー補完を有効にする
let g:NeoComplCache_EnableUnderbarCompletion = 1
" シンタックスファイルの補完対象キーワードとする最小の長さ
let g:NeoComplCache_MinSyntaxLength = 3
" プラグイン毎の補完関数を呼び出す文字数
let g:NeoComplCache_PluginCompletionLength = {
\ 'keyword_complete' : 2,
\ 'syntax_complete' : 2
\ }
" ファイルタイプ毎の辞書ファイルの場所
let g:NeoComplCache_DictionaryFileTypeLists = {
\ 'default' : '',
\ 'java' : $HOME.'/.vim/dict/j2se14.dict',
\ 'javascript' : $HOME.'/.vim/dict/javascript.dict',
\ 'php' : $HOME.'/.vim/dict/PHP.dict',
\ }
snipMateのトリガーを補完リストに表示する
“g:neocomplcache_snippetsdir”で任意のスニペットフォルダを指定できます。
このパラメータに、snipMateのスニペットフォルダを指定すると、
snipMateのトリガーも補完リストに表示してくれます。
ただ、個人的にsnipMateの方が使いやすかったので、スニペット補完に関してはsnipMateを使用しています。
このとき、補完リストにneocomplcacheとsnipMateのトリガーが重複して表示されてしまっていたので、
“g:neocomplcache_snippetsdir”の設定はしていません。
その代わり、snipMateのトリガーを補完リストに表示するneocomplcacheのプラグインが
公開されていたので、そちらを使用してトリガーが表示されるようにしました。
このサイトで紹介されています。
neocomplcache + snipMate の接着剤 snipMate_complete を試してみる
所感
初回起動時にキーワードがキャッシュされるので、ストレスなく補完リストが表示されました。
snipMateのトリガーを補完リストに表示することで、キーワードを覚えておく必要もないですし、
他にも辞書ファイルやシンタックスなどのキーワードが補完リストに表示されるので、
コーディングもしやすくなりました。
かなり素敵なスクリプトです!!作者の方に感謝です!!
追記
作者様よりコメントを頂き、若干修正しました。
http://lingr.com/room/vim/archives/2010/02/03








By Shougo, 2010 年 2 月 3 日 @ 10:09 AM
neocomplcacheの作者です。
ブログでの紹介とお褒めの言葉をありがとうございます。
コメントが長くなったので、lingrに書いておきました。
参照してください。
http://lingr.com/room/vim/archives/2010/02/03
By matsuoka, 2010 年 2 月 4 日 @ 3:14 PM
コメントありがとうございます。
lingrを見て、若干修正しました。