如何在vimrc中设置autocmd以仅运行特定的文件类型?

kir*_*pto 3 vim autocmd

说明:

最近我从git存储库中获取了一个.vimrc文件,到目前为止它已经发现它非常有用.随附的一个有用工具是它在您编写文件时自动删除尾随空格.

但是,我刚开始使用markdown,它提供了如何编写文本文件的清晰格式,使得将这些文件转换为不同类型(如html)变得很容易.

问题是markdown使用两个尾随空格来表示换行符.我的.vimrc会自动删除这些内容.我找到了这样做的autocmd.它是:

autocmd BufWrite * :call DeleteTrailingWS()
Run Code Online (Sandbox Code Playgroud)

DeleteTrailingWS是实际删除空格的函数.

我的问题:

我如何修改它,以便它只会在文件类型没有降价的情况下运行/设置此autocmd?(.md)请以这种方式解释,以便我可以调用泛型函数,而不仅仅是上面的函数.另外,如何使用多种文件类型执行此操作.例如,仅当文件不是.md,.abcd或.efgh类型时才运行/设置此命令?

谢谢你们.

Chr*_*ndt 6

只需在autocommand中检查文件类型:

autocmd BufWrite * if &ft!~?'markdown'|:call DeleteTrailingWS()|endif
Run Code Online (Sandbox Code Playgroud)