If statement Vim:使用;如果;在奥格集团?
我只想定义一个执行一些外部命令的自动命令。例如,在编译后删除一些自动生成的文件。我在Windows和Linux上工作,在这两种平台上使用的外部命令不同 因此,我可以定义:If statement Vim:使用;如果;在奥格集团?,if-statement,vim,autocommand,If Statement,Vim,Autocommand,我只想定义一个执行一些外部命令的自动命令。例如,在编译后删除一些自动生成的文件。我在Windows和Linux上工作,在这两种平台上使用的外部命令不同 因此,我可以定义: if has("win32") autocmd foo bar_win else autocmd foo bar_nix endif 如果我想在augroup中定义这个自动命令,我应该简单地将这段代码放入一个augroup中,如: augroup fooo
if has("win32")
autocmd foo bar_win
else
autocmd foo bar_nix
endif
如果我想在augroup
中定义这个自动命令,我应该简单地将这段代码放入一个augroup中,如:
augroup fooo
autocmd!
if has("win32")
autocmd foo bar_win
else
autocmd foo bar_nix
endif
augroup END
我试过这个方法,看起来效果不错。我想知道这样做是否正确。我可以考虑的另一种方法是将外部命令写入一个函数中,在该函数中我可以使用if
语句。然后以通常的方式定义自动命令并调用此函数。哪个更好
谢谢
augroupfoo
和augroupend
不划分代码块,因此无论您是否将功能检查放在那里或其他地方
但是,如果您想要安全性和灵活性,您可以遵循这种替代模式
vimrc
顶部附近定义一个空的自动命令组:
augroup foo
autocmd!
augroup END
if has("win32")
autocmd foo Event * command for windows
else
autocmd foo Event * command for unices
endif
由于您的自动命令属于组foo
,因此当您:source$MYVIMRC
时,它们将被正确删除当然,双向都有效。第一个比较干净,效率稍微高一些,我觉得还可以。