3

私はコマンドを持っていることを試みています

    let b:match_words='<:>,<\@<=\([^/][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>'

htmlファイルを開くたびに実行します。線を引いてみました

    autocmd FileType html let b:match_words='<:>,<\@<=\([^/][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>'

ftdetectフォルダーとftpluginフォルダーの両方にあるhtml.vimという名前のファイルで、何も起こりませんでした。HTMLファイルを使用するたびにコマンドを実行するにはどうすればよいですか?

コマンドは、matchitbtwの一致動作を変更することです。

4

1 に答える 1

5

一般に、autocmd は問題ありません。b:match_words問題は、 で行った定義を再定義しようとしている$VIMRUNTIME/ftplugin/html.vimため、実行順序が重要になることです。

これらのカスタマイズの場所はafterディレクトリにあり~/.vim/after/ftplugin/html.vimます。新しいファイルを作成し:let、そこにコマンドを入れるだけです。

を介して、ソース スクリプトのシーケンスを確認できます:scriptnames。それ以外の場合、デフォルトの動作をオーバーライドしない場合は で問題ありませんが、:autocmd FileTypeこれら (カスタム マッピングなど) を~/.vim/ftplugin/html_mymappings.vimに配置することをお勧めします。これにより、分離が改善され、.vimrc簡潔でわかりやすいものにすることができます。

ftdetectサブディレクトリは、ファイルの種類を検出するためのものです。つまり、ファイルのパス/名前/内容を調べて、正しいファイルの種類を判断します。ファイルタイプがhtml.

于 2012-09-16T19:08:15.927 に答える