我在vim脚本中使用vim substitute
函数,我想在第一个初始括号后替换所有字符。例如,假设我有一个如下所示的字符串:
]]]] foo ] bar ] baz
我想在关闭括号后删除所有内容。我怎么能匹配呢?请注意,我想在之后删除小括号,而不是字符串开头的那些。执行后,该行应该只有四个括号:
]]]]
答案 0 :(得分:2)
试试这个:
:echo substitute("]]]] foo ] bar ] baz",'\(^]\+\).*','\1','g')
这里,它回声]]]]
。
答案 1 :(得分:1)
此ex
表达式应该有效:
<击>:%S / ^] + \ S * // 击>
:%s/\(^\]*\).*/\1/
答案 2 :(得分:0)
您可以使用
匹配字符串开头的所有右括号,直到空格为止(^[]]*\s).+$
替换为$1
(在vim中可能为\1
)