根据文件类型执行vim命令?

根据文件类型执行vim命令?,vim,command,file-type,Vim,Command,File Type,我正在试着掌握指挥权 let b:match_words='<:>,<\@<=\([^/][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>' 让b:match\u words=',]*\%(>\\\\$\):\\\\\\$\):一般来说,您的autocmd是正常的;问题是您试图重新定义在$VIMRUNTIME/ftplugin/html.vim中完成的b:match_words定义,因此执行顺序变得很重要

我正在试着掌握指挥权

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

让b:match\u words=',]*\%(>\\\\$\):\\\\\\$\):一般来说,您的autocmd是正常的;问题是您试图重新定义在
$VIMRUNTIME/ftplugin/html.vim
中完成的
b:match_words
定义,因此执行顺序变得很重要

这些定制的位置在after目录中,即
~/.vim/after/ftplugin/html.vim
;只需创建一个新文件并将
:let
命令放入其中

您可以通过
:scriptnames
观察源脚本的顺序。在其他情况下,当您不重写默认行为时,
:autocmd文件类型
是可以的,但我更喜欢将这些(例如自定义映射)放入
~/.vim/ftplugin/html_mymappings.vim
,因为它提供了更好的分离,并有助于保持
.vimrc
简短易懂


ftdetect子目录用于文件类型检测,即检查文件路径/名称/内容以确定正确的文件类型。这里不适用,因为文件类型是
html

,您可以在上面发表评论。
    autocmd FileType html let b:match_words='<:>,<\@<=\([^/][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>'