Невозможно заменить пробел новой строкой в ​​Vim - PullRequest
65 голосов
/ 26 июня 2009

Я знаю поток .

Я бегу

:%s/ /s/\n/g

Я получаю

E488: Trailing characters

2-й пример

Я бегу

:%s/ /\n/g

Я получаю

text^@text

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

set fileformat=unix

и

set fileformat=dos

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

Ответы [ 5 ]

120 голосов
/ 26 июня 2009

:%s/ / Ctrl v Возврат /g

Где Ctrl v - клавиша управления плюс клавиша v, а Return - клавиша возврата (клавиша на главной клавиатуре, а не клавиша ввода на цифровой клавиатуре). Остальные символы набираются как обычно.

Если это введено правильно, последовательность Ctrl v Return будет отображаться как символы ^M, обычно другого цвета, чтобы указать, что они особенные. Обратите внимание, что на самом деле набор ^M будет не работать.

Также обратите внимание, что в Vim для Windows это Control-q вместо Control-v (так как это вставка).


Ctrl-v также позволяет вводить другие «специальные» клавиши с клавиатуры. Это также полезно, например, для Tab или Backspace.

44 голосов
/ 26 июня 2009

Попробуйте

%s/ /\r/g
8 голосов
/ 26 июня 2009

Введите следующее:

:s/ /

и теперь введите Ctrl-V или Ctrl-Q (зависит от вашей конфигурации) и нажмите клавишу Enter. Теперь у вас должно быть:

:s/ /^M

Завершить это:

:s/ /^M/g

и тебе пора.

2 голосов
/ 26 июня 2009

Специально для решения вашей проблемы с конечными символами, вы указали это регулярное выражение:

:%s/ /s/\n/g

У вас слишком много /. В результате вы заменяете '' на s, а затем добавляете тег после этого: \n/g

Я думаю, вы имели в виду это:

:%s/ \s/\n/g

Обратите внимание, что ваш /s был изменен на \s. Теперь замена заменит один пробел, за которым следует один пробел любого вида (пробел или табуляция) на \n. Я сомневаюсь, что это решит проблему или заменит пробел новой строкой, но это должно объяснить сообщение об ошибке.

2 голосов
/ 26 июня 2009

Попробуйте либо

Для Unix:

:1,$s/\ /\n/g

Для Windows:

:1,$s/\ /\r/g

Содержит escape-символ для пробела.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...