Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我substitute在 vim 脚本中使用 vim 函数,我想替换第一个初始括号之后的所有字符。例如,假设我有一个如下所示的字符串:
substitute
]]]] foo ] bar ] baz
我想删除右括号后的所有内容。我怎么能匹配这个?请注意,我想删除初始括号之后的右括号,而不是字符串开头的括号。执行后,该行应该只有四个括号:
]]]]
尝试这个:
:echo substitute("]]]] foo ] bar ] baz",'\(^]\+\).*','\1','g')
在这里,它回响]]]]。
这个ex表达式应该有效:
ex
:%s/^]+\s*//
:%s/\(^\]*\).*/\1/
您可以匹配字符串开头的所有右括号,直到使用空格
(^[]]*\s).+$
替换为$1(可能在 vim 中\1)
$1
\1