Как мне найти "\ n" без предшествующего "\ r" в vim? - PullRequest
6 голосов
/ 03 февраля 2010

Vim не будет преобразовывать формат файла, если он видит несогласованные окончания строк. Как я могу найти их?

Ответы [ 4 ]

5 голосов
/ 03 февраля 2010

Утверждающее утверждение нулевой ширины

"Как мне искать« \ n »без предшествующего« \ r »в vim?»

/\r\@<!\n

Как искатьи заменить эти вхождения на "\ r \ n"?

:%s/\r\@<!\n/\r\n/gc

Избавиться от окончательного "c", если вы хотите принять каждый матч без подтверждения.

Редактировать: Однако, есливам нужен ответ, который вы помните, как это сделать, не использовав миллиардные утверждения «вперед / назад», см. ответ Джексона Миллера.Иногда лучше упростить вашу проблему и использовать инструменты, которые не требуют от вас постоянного чтения руководства:)

3 голосов
/ 03 февраля 2010

Как насчет замены \ r \ n на \ n, а затем \ n на \ r \ n.

Должно быть что-то вроде:

  :%s/\r\n/\n
  :%s/\n/\r\n
2 голосов
/ 03 февраля 2010

Используйте утилиту, такую ​​как dos2unix или unix2dos, чтобы преобразовать окончания строк в желаемый формат. Существуют собственные реализации этих утилит для систем Unix и Windows.

2 голосов
/ 03 февраля 2010

Чтобы изменить все окончания строк, которые \ r \ n на \ n, используйте

:%s/\r$//

. При этом будут найдены все символы \ r, за которыми следует символ новой строки, и будет заменено просто символом новой строки

.
...