vim : omnifunc でXMLのクローズタグ自動補完。

XMLのCompletionしたいのだが、

(op)hdknr@host:~$ grep omni ~/.vimrc
:setlocal omnifunc=syntaxcomplete#Complete

で(:syntax on もしてます)、

(op)hdknr@host:~$ vi x.xml

して、</ まで入れた時点で、

WS000022

となる。

Windowsのgvimだとインデントまではあわせてくれるが、補完なし。

(op)hdknr@host:~$ sudo find /usr -name "*.vim" -print | grep complete
/usr/share/vim/vim72/autoload/xmlcomplete.vim
/usr/share/vim/vim72/autoload/syntaxcomplete.vim
/usr/share/vim/vim72/autoload/pythoncomplete.vim
/usr/share/vim/vim72/autoload/sqlcomplete.vim
/usr/share/vim/vim72/autoload/phpcomplete.vim
/usr/share/vim/vim72/autoload/rubycomplete.vim
/usr/share/vim/vim72/autoload/javascriptcomplete.vim
/usr/share/vim/vim72/autoload/adacomplete.vim
/usr/share/vim/vim72/autoload/csscomplete.vim
/usr/share/vim/vim72/autoload/htmlcomplete.vim
/usr/share/vim/vim72/autoload/ccomplete.vim

@notentact はgentoo,ubuntuでできたが、同じように squeezeではできないと言っている。

(op)hdknr@debuniid:~$ ls -l /usr/bin/vi
lrwxrwxrwx 1 root root 20 2009-09-29 15:40 /usr/bin/vi -> /etc/alternatives/vi
(op)hdknr@debuniid:~$ ls -l /etc/alternatives/vi
lrwxrwxrwx 1 root root 18 2009-09-29 15:40 /etc/alternatives/vi -> /usr/bin/vim.basic

のせいかな、とおもったら@notentactいわくgenntooとかもそうだって。

で、

setl omnifunc=xmlcomplete#CompleteTags

したらctrl+x ctrl+oで補完した!

なので、~/.vimrcで、

:setl omnifunc=xmlcomplete#CompleteTags
augroup XMLCOMP
  autocmd!
  autocmd Filetype xml inoremap <buffer> </ </<C-x><C-o>
augroup END

したら</まで入れると自動補完!

カテゴリー: 未分類 パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中