Подтвердить что ты не робот

Невозможно заменить пространство новой строкой в ​​Vim

Я знаю поток .

Я запустил

:%s/ /s/\n/g

Я получаю

E488: Trailing characters

Второй пример

Я запустил

:%s/ /\n/g

Я получаю

text^@text

Я запускаю те же коды также со следующими настройками separetaly

set fileformat=unix

и

set fileformat=dos

Как вы можете заменить новую строку в Vim?

4b9b3361

Ответ 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. Я сомневаюсь, что это решит проблему или заменит пространство на новую строку, но она должна объяснить сообщение об ошибке.