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

Social Bookmark Service
  • はてなブックマーク
  • Yahoo!ブックマーク
  • livedoor Reader
  • Twitter
  • del.icio.us
  • Google Bookmarks
  • Facebook
  • Print this article!

2件のコメント

  • 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を見て、若干修正しました。

Other Links to this Post

このコメント欄の RSS フィード TrackBack URI

コメントをどうぞ