我正在尝试编写一个vim脚本来获取两个命令之间的字符串。例如:
\string{new strings}
,如果新字符串包含空行或空格
:%s/\\string{[^}]*\n*[^}]*}/new/gec
答案 0 :(得分:2)
您的要求不是那么明确,但如果您想要
获取"新字符串"如果它包含空行或空格
你也评论道:
选择\ string {} 大括号内的内容,即使有任何空格或行
这一行是它,它是一个搜索命令,而不是:s
/\\string{\zs\_[^}]*
如果您想对\string{
和}
之间的内容进行替换,可以使用以下模式:
%s/\\string{\zs\_[^}]*\ze}/whatever/g
请注意,您也可以写s/\\string{\zs\_[^}]*/whatever/g
,\ze}
将确保结束括号必须在那里。不确定是否需要这样做。
有关\_[]
的详细信息,请执行:h \_[
答案 1 :(得分:0)
使用此代码
%s/\\string{[^}]*\n*[^}]*\n*[^}]*\n*[^}]*\n*[^}]*\n*[^}]*\n*[^}]*\n*[^}]*\n*[^}]*\n*[^}]*\n*[^}]*\n*[^}]*\n*[^}]*\n*[^}]*\n*[^}]*\n*[^}]*\n*[^}]*\n*[^}]*\n*[^}]
*}/new/gec