vim插入文本,如果还没有

时间:2012-01-19 09:18:51

标签: regex vim latex replace

我遇到的问题是,在LaTeX文档中,我希望每行末尾都有一个% (fold),其中包含\begin{$environment}。 我得到了

:g/\\begin\{\w+\}/s/$/\% \(fold\)/

但是我把% (fold)的两倍加到我写下来的行。

如何在我最喜欢的编辑器中“插入% (fold)(如果还没有”)

2 个答案:

答案 0 :(得分:7)

修改:global命令或:substitute命令中的模式 匹配不以% (fold)结尾的行,如下所示。

:g/\\begin{\w\+}/s/\(% (fold)\)\@<!$/% (fold)/

:g/\\begin{\w\+}\(.*% (fold)$\)\@!/s/$/% (fold)/

答案 1 :(得分:1)

这就是我要做的: :v/% (fold)$/s/\(\\begin.*$\)/\1% (fold)

这意味着对于不以% (fold)结尾的每一行,搜索\begin以及所有字符直到结尾并将其替换为搜索加% (fold)