Как найти и заменить строку символов # (фунт) в vim? - PullRequest
0 голосов
/ 14 мая 2018

У меня есть файл, где у меня есть комментарии, такие как ######### Utility Functions #######.Я пытаюсь очистить его и сделать что-то вроде # Utility Functions #, что требует от меня соответствия строки из более чем одного знака фунта и замены ее одним знаком фунта.

Я пробовал следующее

:%s/#+/#/gc
:%s/"#"+/#/gc
:%s/\#+/#/gc
:%s/(#)+/#/gc

и еще куча.Как я понимаю, # имеет особое значение для соответствия нескольким символам, таким как *, но в обратном направлении.Это будет означать, что мне придется как-то избежать этого, чтобы достичь вышеизложенного.Любая помощь приветствуется.

Ответы [ 3 ]

0 голосов
/ 14 мая 2018

Вы можете попробовать использовать кавычки.

sed 's/"#"//g'
0 голосов
/ 14 мая 2018

Нет, # не имеет особого значения, а + при использовании это просто обычный +.Вам нужно выйти из +, чтобы сделать его «мульти»:

:%s/#\+/#/g

См. :help multi.

0 голосов
/ 14 мая 2018

попробуйте это: :%s/\v#{2,}/#/g

#{2,} " 2, means at least two

В большинстве разновидностей регулярных выражений есть ярлык "больше чем один": + так что

:%s/\v#+/#/g

тоже работает, есливы используете "очень волшебство" (\v), см. :h magic.

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