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

Как поместить символы новой строки в замены регулярных выражений GVim

Я использую GVim для Windows 7.

Я хочу узнать, как ставить символы новой строки с помощью регулярных выражений. Для этого я пытаюсь использовать метасимволы \r и\n, но замещенный текст не показывает нормальные символы новой строки.

Например, в начале я:

line 1
line 2

Before substitution

Я использую следующее выражение подстановки:

:%s/\n/\n\n/g

Затем GVim создает следующий текст:

line 1^@^@line 2^@^@

After substitution with \n as newline characters

Вместо этого, если я использую \r\n в выражении подстановки

:%s/\n/\r\n/g

Затем GVim создает следующий текст:

line 1
^@line 2
^@

After substitution with \r\n as newline

Что это за символы @@?

Как правильно использовать символы новой строки в выражении замещения?

4b9b3361

Ответ 1

^ @является nul


По какой-то причине vim хочет увидеть \r в тексте замены, чтобы вставить новую строку. (\n в замене вставляет nul.)

Итак, после успешного поиска новых строк, запустив /\n, попробуйте:

s//\r/

Или добавить дополнительную строку новой строки:

s/$/\r/

На стороне рисунка \r означает фактический символ (015) CR, приводящий к следующей странно выглядящей команде, когда вы хотите заменить возврат символами новой строки:

s/\r/\r/

Нет, это не без-op.

Ответ 2

Это

s/\r/\r/

не удается. Но

s/\n/\r/

отлично работает.