web-dev-qa-db-ja.com

Vimの自動コマンドはパターンではなくファイルタイプでトリガーできますか?

特定のファイル拡張子に対して_:autocmd_を使用して機能を設定する方法を知っています。

例えば。 〜/ .vim/ftplugin/xml.vim

_augroup xml
    au BufEnter *.xml call Setup_XML_Menu()
    au BufLeave *.xml call Destroy_XML_Menu()
augroup END
_

WhatSetup_XML_Menu() doesを気にしないでください。重要なのは、XMLバッファーに出入りするときに、構成を設定およびリセットしているということです。

しかし、代わりに特定のfiletypeに自動コマンドを適用する方法はありますか?

* .xmlという名前のバッファーを入力すると、BufEnterautocmdが期待どおりに起動します。
しかし、_filetype=xml_を持つanyバッファに入ると、これが発生するようにしたいと思います。

したがって、server.wsdlという名前のバッファーを入力した場合(このバッファーのファイルタイプがxmlになるように既に調整していると仮定します)、次の自動コマンドを構成せずに、XMLautocmdもそこに適用したいと思います。考えられるすべてのXMLファイル拡張子。

私は私が次のようなものを持つことができることを望みました:

_au BufEnter xml call ...
_

または

_au BufEnter filetype xml call ...
_

ただし、これらは機能しません(最初の例は、「xml」という名前のバッファーにのみ適用されます)。

私が検討した他の可能性:_au FileType xml ..._は、バッファーのファイルタイプを明示的に変更した場合にのみ適用されます-特定のバッファーウィンドウに出入りするときに設定を適用および削除したいです。

質問しすぎですか?

6
njd

au BufEnter * if &ft ==# 'xml' | commands | endifのようなことをすることができます

4
Benoit