Невозможно заменить пространство новой строкой в Vim
Я знаю поток .
Я запустил
:%s/ /s/\n/g
Я получаю
E488: Trailing characters
Второй пример
Я запустил
:%s/ /\n/g
Я получаю
text^@text
Я запускаю те же коды также со следующими настройками separetaly
set fileformat=unix
и
set fileformat=dos
Как вы можете заменить новую строку в Vim?
Ответы
Ответ 1
:%s/ /
Ctrl v Return /g
Где Ctrl v есть клавиша управления плюс клавиша v и Return - это клавиша возврата (та, которая находится на основной клавиатуре, а не клавиша ввода на цифровой клавиатуре). Другие символы печатаются как обычно.
Если это введено правильно, последовательность Ctrl v Return будет отображаться в виде символов ^M
, как правило, другого цвета, чтобы указать, что они являются особыми. Обратите внимание, что на самом деле ввод ^M
не будет работать.
Также обратите внимание, что в Vim для Windows это Control-q вместо Control-v (как это вставить).
Ctrl-v также позволяет вводить другие "специальные" клавиши с клавиатуры. Это также полезно для, например, Tab или Backspace.
Ответ 2
Try
%s/ /\r/g
Ответ 3
Введите следующее:
:s/ /
и теперь введите Ctrl-V или Ctrl-Q (зависит от вашей конфигурации) и нажмите клавишу Enter. Теперь вы должны:
:s/ /^M
Завершите его:
:s/ /^M/g
и вам хорошо идти.
Ответ 4
Попробуйте либо
Для Unix:
:1,$s/\ /\n/g
Для Windows:
:1,$s/\ /\r/g
Здесь содержится escape-символ для пробела.
Ответ 5
В частности, чтобы ответить на вашу проблему с завершающими символами, это указанное вами регулярное выражение:
:%s/ /s/\n/g
У вас слишком много /
. Случается, что вы заменяете '' на s
, а затем вы отмечаете это после замены: \n/g
Я думаю, вы имели в виду это:
:%s/ \s/\n/g
Обратите внимание, что ваш /s
был изменен на \s
. Теперь подстановка заменит одно пробел, за которым следует пробел любого вида (пробел или табуляция) с помощью \n
. Я сомневаюсь, что это решит проблему или заменит пространство на новую строку, но она должна объяснить сообщение об ошибке.