根据文件类型执行 vim 命令



我正在尝试使用命令

    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 .

最新更新