Vimscript是否等价于Ruby的`any?'
问题描述:
我想在我的vimrc重构这个条件:Vimscript是否等价于Ruby的`any?'
if &term =~ "xterm" || &term =~ "screen" || &term =~ "builtin_gui"
" do some stuff...
endif
在Ruby中我可能会做这样的事情:
names = ["xterm", "screen", "builtin_gui"]
if names.any? { |n| &term =~ n }
" do some stuff...
endif
我知道Vimscript中没有像Ruby块东西,但是有没有内建的功能可以让我按照这些方法做点什么?
答
=~
一个正则表达式匹配。所以你可以使用正则表达式的全部功能。这些都应该工作:
&term =~ 'xterm\|screen\|builtin_gui'
&term =~ join(names, '\|')`
Facepalm。我不能相信我忽略了这一点。 – ivan 2015-01-27 01:41:00