我正在尝试使用命令
let b:match_words='<:>,<@<=([^/][^ t>]*)[^>]*%(>|$):<@<=/1>'
每次打开 html 文件时运行。我试过放线
autocmd FileType html let b:match_words='<:>,<@<=([^/][^ t>]*)[^>]*%(>|$):<@<=/1>'
在我的FTdetect和ftplugin文件夹中一个名为html.vim的文件中,什么也没发生。如何让每次我在 html 文件中运行时运行命令?
该命令是更改匹配行为 匹配 顺便说一句。
一般来说,你的autocmd没问题;问题是你试图重新定义在$VIMRUNTIME/ftplugin/html.vim
中完成的b:match_words
定义,所以执行顺序变得很重要。
这些自定义的位置在 after 目录中,即 ~/.vim/after/ftplugin/html.vim
;只需创建一个新文件并将 :let
命令放入其中即可。
您可以通过 :scriptnames
观察源脚本的顺序。在其他情况下,当您不覆盖默认行为时,:autocmd FileType
没问题,但我更喜欢将这些(例如自定义映射)放入~/.vim/ftplugin/html_mymappings.vim
中,因为它提供了更好的分离并有助于保持您的.vimrc
简短易懂。
ftdetect 子目录用于文件类型检测,即检查文件路径/名称/内容以确定正确的文件类型。它在这里不适用,因为文件类型是 html
.