是否有等同于 Ruby 的“any”的 Vimscript?
Is there a Vimscript equivalent to Ruby's `any?'
我想在我的 vimrc 中重构这个条件:
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 块之类的东西,但是是否有任何内置函数可以让我按照这些思路做一些事情?
不是真的
let names = ["xterm", "screen", "builtin_gui"]
if len(filter(names, '&term =~ v:val')) > 0
endif
=~
正则表达式匹配。所以你可以使用正则表达式的全部功能。这些都应该有效:
&term =~ 'xterm\|screen\|builtin_gui'
&term =~ join(names, '\|')`
我想在我的 vimrc 中重构这个条件:
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 块之类的东西,但是是否有任何内置函数可以让我按照这些思路做一些事情?
不是真的
let names = ["xterm", "screen", "builtin_gui"]
if len(filter(names, '&term =~ v:val')) > 0
endif
=~
正则表达式匹配。所以你可以使用正则表达式的全部功能。这些都应该有效:
&term =~ 'xterm\|screen\|builtin_gui'
&term =~ join(names, '\|')`