Вим вставить текст, если еще не там - PullRequest
3 голосов
/ 19 января 2012

У меня проблема в том, что в документе LaTeX я хочу иметь % (fold) в конце каждой строки, в которой есть \begin{$environment}. который я получил с

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

но я удвоил % (fold) в строках, где он уже был записан.

Как мне "вставить % (fold), если его там еще нет" в моем любимом редакторе?

Ответы [ 2 ]

7 голосов
/ 19 января 2012

Измените шаблон в команде :global или в команде :substitute, чтобы сопоставить строки, которые не заканчиваются на % (fold), следующим образом.

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

или

:g/\\begin{\w\+}\(.*% (fold)$\)\@!/s/$/% (fold)/
1 голос
/ 19 января 2012

Вот что я бы сделал: :v/% (fold)$/s/\(\\begin.*$\)/\1% (fold)

Это означает, что для каждой строки, которая не заканчивается на % (fold), найдите \begin и все символы до конца и замените ее поиском плюс % (fold)

...