vim7の新機能 Omni completion

これヤバス!eclipseなどでおなじみのインテリジェンスな補完を提供する機能みたい。詳しくは:h new-omni-completion で。今のところCとXHTMLCSSしか用意されてないんで、htmlで早速使ってみた。機能はこんな感じ。

  • after "<" complete tag name depending on context (no div suggest inside of an a tag)
    • (全部注釈であって翻訳じゃないよ) <の後でタグ名の補完。子要素として相応しいのしか補完されない。たとえばdivやpタグで囲まれてないのにstrongは補完されることはない。
  • inside of tag complete proper attributes (no width attribute for an a tag)
    • タグのattributesの補完。もちろん適用できる属性だけ。
  • when attribute has limited number of possible values help to complete them
    • 属性の数による補完?(わからない…)
  • complete values of "class" and "id" attributes with data obtained from style tag and included CSS files
    • 読み込んでいるcssのclassとidによるhtmlのインテリジェンス補完
  • when completing "style" attribute or working inside of "style" tag switch to |ft-css-omni| completion
    • style属性もしくはstyleタグで囲まれた部分はcss-omniによるインテリジェンス補完
  • when used after "

正直vimには辞書とバッファ補完で十分だと思っていたんだけど、使ってみるとインテリジェンス補完便利すぎ!autoload/ファイルタイプcomplete.vim ってファイル作れば自分でも作れるんでだれかautoload/rubycomplete.vim希望まくり!

あと先日の謎自動補完はcompleteoptって新しく加わった機能だったみたい。オフにしたければ:set completeopt= でメニュでの補完リストは表示されなくなる。せっかくだから常用してみようと配色変更。

hi Pmenu ctermbg=8
hi PmenuSel ctermbg=12
hi PmenuSbar ctermbg=0

と設定してそこそこ見れる補完リストになった。