3

Я знаю, что, вероятно, есть способ сделать это с помощью регулярных выражений, но я не могу понять, что такое регулярное выражение в vim. Я попытался выполнить поиск: /-\{2} но он также ловит тройные дефисы.

Я также не могу просто сделать традиционный поиск и замену, так как в моем файле есть тройные дефисы. Поиск -- возвращает тройные дефисы в дополнение к двойным дефисам.

2 ответа2

8

Как насчет :%s,-\@<!---\@!,---,g? Таким образом, он не изменится «---» на «----».

2

Ваш пример работает для меня, поэтому я подозреваю, что в вашем файле есть другой символ, который выглядит только как дефис.

Я бы посоветовал навести курсор на один в обычном режиме, набрав yl чтобы вернуть символ, затем набрав /, а затем нажав control-r затем "(двойная кавычка). Если это работает, вы можете использовать тот же трюк для создания команды замены.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .