1

substitute在 vim 脚本中使用 vim 函数,我想替换第一个初始括号之后的所有字符。例如,假设我有一个如下所示的字符串:

]]]] foo ] bar ] baz

我想删除右括号后的所有内容。我怎么能匹配这个?请注意,我想删除初始括号之后的右括号,而不是字符串开头的括号。执行后,该行应该只有四个括号:

]]]]
4

3 回答 3

2

尝试这个:

:echo substitute("]]]] foo ] bar ] baz",'\(^]\+\).*','\1','g') 

在这里,它回响]]]]

于 2013-03-09T20:02:31.217 回答
1

这个ex表达式应该有效:

:%s/^]+\s*//

:%s/\(^\]*\).*/\1/
于 2013-03-09T19:53:25.380 回答
0

您可以匹配字符串开头的所有右括号,直到使用空格

(^[]]*\s).+$

替换为$1(可能在 vim 中\1

于 2013-03-09T19:55:28.460 回答