Как вы закомментируете все непустые строки без комментариев в файле? - PullRequest
0 голосов
/ 18 января 2020

У меня есть файл, к которому я хочу добавить #, избегая пустых строк. Рассматриваемый конфиг можно найти по адресу: https://github.com/koekeishiya/skhd/blob/master/examples/skhdrc

Я хочу закомментировать их все, а затем go до конца и раскомментировать то, что мне нужно.

Ответы [ 3 ]

3 голосов
/ 18 января 2020

Замена, требующая ведущего не #, достигает обоих сразу:

:%s/^[^#]/#&
0 голосов
/ 19 января 2020

Поиск ниже соответствует только непустым строкам, которые не начинаются с #. (Спасибо @ Ry ) за его комментарии, это помогло мне дать краткий ответ.

/^#\@!.

# .................. literal #
\@! ................ negates preceding  atom
.   ................  any char

Таким образом, решение становится таким:

:%s/#@!./# &

& ............... the whole search pattern

Совет: как только вы сделать поиск вы можете сделать это:

:%s//# &

Двойная косая черта означает: используйте последний поиск для моей замены.

0 голосов
/ 18 января 2020

Альтернативное решение:

:global/^[^#]/s/^/#

И если вы не возражаете против возможности дублирования # с, используйте . в качестве шаблона global вместо:

:global/./s/^/#

Я бы даже сказал, что это лучший , с тех пор вы можете найти закомментированный код с помощью поиска ^#[^#], а оригинальные комментарии - с помощью поиска ^##.

В любой форме вместо substitute -ing можно «вставить», изменив команду, указав global на :normal! I#


:global, можно сократить до :g и от :normal! до :norm! (в большинстве случаев).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...