Вставьте символ возврата каретки в vim


101

Я редактирую фрейм сетевого протокола, хранящийся в файле в Unix ( \nновые строки). Мне нужно вставить символ возврата каретки ( U+000Dон же \r). Когда я пытаюсь вставить его из буфера обмена ( "+p) или набираю его с помощью Ctrl+ Shift+ u- 000d, вставляется перевод строки ( U+000A).

Как правильно это делать?


Нет. Думаю, ты ошибся в побеге. Не могли бы вы предложить другое (работающее) решение на основе регулярных выражений? :)
Андрей Власовских

Ответы:


169

Тип: ctrl- v ctrl-m

В Windows Использование: ctrl- q ctrl-m

Ctrl- Vсообщает vi, что следующий набранный символ должен быть вставлен буквально, и ctrl- mэто нажатие клавиши для возврата каретки.


10
Спасибо, у меня работает Помощь можно найти с помощью :help ins-special-keys.
Андрей Власовских

1
Если вы используете установку Windows по умолчанию, замените CTRL + V на CTRL + Q, поскольку CTRL + V переназначен на «вставить».
Cyber ​​Oliveira,

9
После долгой тряски я добавляю это сюда, хотя это старый вопрос: чтобы вставить буквальный символ CR из команды a: s, вы должны поставить перед ним обратную косую черту, иначе vim (7.1.314) преобразует его в конец строковый символ, соответствующий настройке формата файла. т.е. введите :s/.../\^V^M/g.
DerfK 09

6
А как насчет того, что Ctrl+Vследует Enter? Замечу, что тоже вставляет ^Mв текст
Брейден Бест

2
Обратите внимание, что это также работает для ESC: сначала войдите в режим INSERT (i), затем Ctrl + V ESC, и вы получите символ ESC.
Кристофер Шульц,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.