2015-03-03 24 views
1

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

autocmd FileType python make me happy with python 

但是有没有什么办法让我的cmd运行,如果加载文件不是特定类型?例如:

autocmd FileType !python make me happy without python 

上面的示例不起作用,autocmd!将删除autocmd。

有什么建议吗?谢谢。

回答

4

有几种可能性:

  • 简单的方法是调用一个函数,使你的函数检查文件类型(并中止,如果文件类型是蟒蛇)。
  • 另一种方法是为python文件类型设置一个标志并让你检查标志。
  • 使用*模式并调用您的代码只内的,如果条件检查的文件类型(与此类似): autocmd Filetype * if &ft!="python"|put your code here|endif
  • 难的方法是创建一个模式,不符合蟒蛇。像这样的东西应该这样做: :autocmd FileType [^p],[^p][^y],[^p][^y][^t],[^p][^y][^t][^h],[^p][^y][^t][^h][^o],[^p][^y][^t][^h][^o][^n] :put your code here

(最后一部分是未经检验的,应该说明,为什么平时任何其他可能性都使用)。

+0

谢谢。我用第三个选项作为最简单的方法。 – shved 2015-03-04 10:42:37

3

您可以制作一个由所有(*)文件类型触发的autocmd,然后调用一个函数。

在该功能中,您可以检查ft选项(&ft)以决定对某些文件类型应该做些什么。在那里你可以做任何匹配逻辑值&ft