Home > Vim Hacks > Hack #96: あらゆる言語に対してキーワードの補完を有効にする

Hack #96: あらゆる言語に対してキーワードの補完を有効にする

問題

Vim 7からはユーザー独自の入力補完 (:help new-omni-completion) を定義できるようになりました。 これを利用した各種言語用の高度な入力補完が利用可能になっており、 標準では以下の言語用の補完が用意されています。

  • C
  • CSS
  • HTML
  • JavaScript
  • PHP
  • Python
  • Ruby
  • SQL
  • XML

例えばHTMLの場合は下図のように文脈による高度な補完が可能です。

Vim標準添付のHTML用補完の実行例

しかし他の言語についてはこのような入力補完は用意されていません。 HTMLのような高度なものでなくとも、 せめて予約語程度くらいは補完できてほしいものです。

解決方法

Vimは標準で500種類以上の言語に対するシンタックスハイライトが可能です。 シンタックスハイライト用の定義の中には 予約語のようなキーワードに関する情報が含まれていますので、 それを利用した入力補完が考えられます。

これには以下の内容をvimrcに追加します。

" 注意: この内容は:filetype onよりも後に記述すること。
autocmd FileType *
\   if &l:omnifunc == ''
\ |   setlocal omnifunc=syntaxcomplete#Complete
\ | endif

これにより、特に入力補完が用意されていないあらゆる言語に対して 各種キーワードの補完ができるようになります。

例えばScheme用の入力補完は標準で用意されていませんが、 上記の設定を行なうことで以下のように補完を行なうことができます。

Scheme編集中のキーワード補完の様子

参考資料

kana
このエントリーをはてなブックマークに追加
はてなブックマーク - Hack #96: あらゆる言語に対してキーワードの補完を有効にする
Share on Facebook
Post to Google Buzz
Bookmark this on Google Bookmarks
Bookmark this on Yahoo Bookmark
Bookmark this on Livedoor Clip
Share on FriendFeed

Comments:0

Comment Form
Remember personal info

Trackbacks:2

Trackback URL for this entry
http://vim-users.jp/2009/11/hack96/trackback/
Listed below are links to weblogs that reference
Hack #96: あらゆる言語に対してキーワードの補完を有効にする from Vim-users.jp
pingback from Vim-users.jp – Hack #96: あらゆる言語に対してキーワードの補完を有効にする « とっても! ちゅどん(雑記帳) 09-11-01 (日) 7:22

[...] Vim-users.jp – Hack #96: あらゆる言語に対してキーワードの補完を有効にする Vim-users.jp – Hack #96: あらゆる言語に対してキーワードの補完を有効にする [...]

pingback from Hack #96: あらゆる言語に対してキーワードの補完を有効にする | 次なるもの 09-11-02 (月) 1:06

[...] original article [...]

Home > Vim Hacks > Hack #96: あらゆる言語に対してキーワードの補完を有効にする

Search
Feeds
Links
  • 公式
  • 勉強会
  • 情報
  • コミュニティ
  • Meta
    Etc
    Creative Commons License
    This blog is licensed under a Creative Commons License.

    Return to page top