小编njd*_*njd的帖子

Vim 自动命令可以由文件类型而不是模式触发吗?

我知道如何设置: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 ...仅当我明确更改缓冲区的文件类型时才适用 - 我希望在我跳入和跳出特定缓冲区窗口时应用和删除设置。

我要求太多了吗?

vim macros filetype

7
推荐指数
1
解决办法
2171
查看次数

标签 统计

filetype ×1

macros ×1

vim ×1