我知道如何设置:autocmd用于特定文件扩展名的功能:
例如。~/.vim/ftplugin/xml.vim
augroup xml
au BufEnter *.xml call Setup_XML_Menu()
au BufLeave *.xml call Destroy_XML_Menu()
augroup END
Run Code Online (Sandbox Code Playgroud)
没关系Setup_XML_Menu()- 关键是当我进入或离开 XML 缓冲区时,我正在设置和重置配置。
但是有没有办法为特定文件类型应用自动命令?
如果我输入一个名为 *.xml 的缓冲区,BufEnter autocmd 就会按照我的预期启动。
但是我希望当我进入任何具有filetype=xml
因此,如果我输入一个名为 server.wsdl 的缓冲区(假设我已经将此缓冲区的文件类型设置为xml),我希望 XML autocmd 也应用于那里,而无需为每个可能的 XML 文件扩展名配置自动命令。
我希望我可以有这样的东西:
au BufEnter xml call ...
Run Code Online (Sandbox Code Playgroud)
或者
au BufEnter filetype xml call ...
Run Code Online (Sandbox Code Playgroud)
但是这些不起作用(第一个示例仅适用于名为“xml”的缓冲区)。
我考虑的另一种可能性:au FileType xml ...仅当我明确更改缓冲区的文件类型时才适用 - 我希望在我跳入和跳出特定缓冲区窗口时应用和删除设置。
我要求太多了吗?