vimrc autocmd:中的文件类型不相等

vimrc autocmd:中的文件类型不相等,vim,Vim,如果加载了特定文件类型的文件,我可以使用autocmd使cmd运行。例如,对于python: autocmd FileType python make me happy with python 但是,如果加载的文件不是特定类型的,有没有办法让我的cmd运行?比如: autocmd FileType !python make me happy without python 上面的例子不起作用,autocmd将删除autocmd 有什么建议吗?谢谢。您可以创建一个由所有(*)文件类型触发的自动M

如果加载了特定文件类型的文件,我可以使用autocmd使cmd运行。例如,对于python:

autocmd FileType python make me happy with python
但是,如果加载的文件不是特定类型的,有没有办法让我的cmd运行?比如:

autocmd FileType !python make me happy without python
上面的例子不起作用,
autocmd将删除autocmd


有什么建议吗?谢谢。

您可以创建一个由所有(
*
)文件类型触发的
自动MD
,然后调用一个函数


在函数中,您可以检查
ft
选项(
&ft
),以决定对某些文件类型应执行的操作。您可以使用
&ft

的值执行任何匹配逻辑。有几种可能性:

  • 最简单的方法是调用函数,让函数检查文件类型(如果文件类型是python,则中止)
  • 另一种方法是为python文件类型设置一个标志,并让函数检查该标志
  • 使用
    *
    模式,仅在检查文件类型的if条件内调用代码(类似于此):
    autocmd文件类型*if&ft=“python”|将代码放在这里| endif
  • 困难的方法是创建一个与python不匹配的模式。像这样的东西应该可以做到:
    :autocmd文件类型[^p]、^p][^y]、^p][^y][^t]、^p][^y][^t][^h]、^p][^y][^h][^o]、^p][^y][^t][^h][^o][^n]:请将代码放在这里

(最后一部分未经测试,应说明为什么通常使用其他任何可能性)。

谢谢。我用第三种方法作为最简单的方法。