
Когда я открываю Vim на своем ноутбуке и запускаю регулярное выражение следующим образом:
:%s/foo/\n/g
vim вставляет ^@ вместо переносов строк.
Эта проблема началась на прошлой неделе. Я использую Ubuntu 18.04.04. Я думаю, что проблема могла начаться после того, как Ubuntu установила обновления.
Что я пробовал
кодирование и кодирование файлов
Я пробовал устанавливать кодировку и кодировку файла на utf-8, а затем на latin1, но это ничего не дало.
:язык
:lang выводит "Текущий язык: "LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=es_ES.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=es_ES.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=es_ES.UTF-8;LC_NAME=es_ES.UTF-8;LC_ADDRESS=es_ES.UTF-8;LC_ TELEPHONE=es_ES.UTF-8;LC_MEASUREMENT=es_ES.UTF-8;LC_IDENTIFICATION=es_ES.UTF-8"
Если я вызову vim с помощью
LC_ALL=C vim foo
то это не имеет значения, проблема все равно возникает.
решение1
\n в vim для замены означает не новую строку, а ноль.
Вместо этого используйте \r. Например:
:%s/foo/\r/g