Wstaw znak powrotu karetki w vim


101

Edytuję ramkę protokołu sieciowego zapisaną w pliku w systemie Unix ( \nznaki nowej linii). Muszę wstawić znak powrotu karetki ( U+000Daka \r). Kiedy próbuję wkleić go ze schowka ( "+p) lub wpisać za pomocą Ctrl+ Shift+ u- 000d, następuje wstawienie nowego wiersza ( U+000A).

Jaki jest właściwy sposób, aby to zrobić?


Nie. Myślę, że twoja ucieczka może być niewłaściwa. Czy możesz zaproponować inne (działające) rozwiązanie oparte na wyrażeniach regularnych? :)
Andrey Vlasovskikh

Odpowiedzi:


169

Typ: ctrl- v ctrl-m

W systemie Windows: ctrl- q ctrl-m

Ctrl- Vmówi vi, że następny wpisany znak powinien być wstawiony dosłownie i ctrl- mjest naciśnięciem klawisza do powrotu karetki.


10
Dzięki, to działa dla mnie. Pomoc można znaleźć za pomocą :help ins-special-keys.
Andrey Vlasovskikh

1
Jeśli używasz domyślnej instalacji systemu Windows, zamień CTRL + V na CTRL + Q, ponieważ CTRL + V jest odwzorowywany na „wklej”.
Cyber ​​Oliveira

9
Po wielu headbangingu dodaję to tutaj, chociaż jest to stare pytanie: aby wstawić literalny znak CR z polecenia: s, musisz poprzedzić go ukośnikiem odwrotnym, w przeciwnym razie vim (7.1.314) przekonwertuje go na koniec znak linii odpowiedni dla twojego ustawienia formatu pliku. czyli wejść :s/.../\^V^M/g.
DerfK

6
A co z Ctrl+Vnastępującymi po nim Enter? Zauważyłem, że również wstawia ^Mdo tekstu
Braden Best

2
Zauważ, że działa to również dla ESC: najpierw przejdź do trybu INSERT (i), a następnie Ctrl + V ESC, a otrzymasz znak ESC.
Christopher Schultz
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.