В поиске и замене vim, новая строка отображается как "^ @"
Я скопировал вложенные ячейки длинной электронной таблицы google в txt файл, который представляет собой список адресов электронной почты, разделенных запятыми. Существует также множество "пустых" ячеек, т.е. Пустое пространство, окруженное запятыми. Поэтому у меня мог бы быть следующий список:
[email protected], ,[email protected], , , , [email protected]
В vim, когда я пытаюсь добавить отдельный адрес по новой строке с помощью этой команды:
:%s/, /,\n/g
вместо добавления новой строки после запятой я вместо этого получаю "^ @".
Я знаю, что это имеет какое-то отношение к наборам символов, но я не знаю, как это исправить.
Ответы
Ответ 1
В поле замены :s
вам нужно использовать \r
not \n
для символов новой строки.
^ @- нулевой символ ASCII. Vim внутренне использует \r для новых строк (это ^ M) и \n для ASCII null, поэтому при замене, если вы используете \n, вы получаете эти нулевые символы вместо строк новой строки. См. Также: h subst-replace-special