根据文件类型执行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>'