在vim搜索和替换中匹配右括号

时间:2015-06-08 10:32:22

标签: regex vim

在正常模式的vim中,我可以使用%移动到右括号。是否有相当于我可以在搜索和替换命令中使用的东西?假设我有一些乳胶代码,我想从中删除斜体。在一个简单的场景中,:%s/{\\it \(.*\)}/\1/gc之类的东西可以完成这项工作,但实际上这将停留在第一个结束大括号,它很可能会关闭其他东西,就像我可能{\it some text in italics {\bf and some in bold also} ...possibly so many other commands with curly braces... and finally my closing curly brace:}一样。

1 个答案:

答案 0 :(得分:0)

这可能是“写一个小宏并使用搜索”的意思,但你可以使用normal命令的普通模式命令,例如:

:g|{\\it|normal /{\\it^M%mm%5x`mx

:g将在匹配模式 {\it 的每一行上触发,并且对于每个匹配,它会运行正常模式命令/{\\it以跳转到正确的位置,%到达右大括号,mm在结束大括号,%跳回到开头,5x删除打开命令,然后跳回标记,然后x删除结束命令。

这不能处理的是一行上的几个{\it开口。 (但你可以再次运行它)。比学习Perl更快。