2009-10-18 14 views
73

Edytuję ramkę protokołu sieciowego, w której przechowywany jest plik w systemie Unix (\n znaki nowej linii). Muszę wstawić znak powrotu karetki (U+000D aka \r). Kiedy próbuję wkleić ze schowka ("+p) lub wpisać go za pomocą Ctrl + SHIFT + u - 000d, znak końca linii jest włożona (U+000A).Wstaw znak powrotu karetki do vim

Co to jest właściwy sposób?

+1

:% s/\\ n/\\ r/g nie działa? – LB40

+0

Nie. Myślę, że twoje ucieczkę może być nie tak. Czy możesz zaproponować inne (działające) rozwiązanie oparte na regexp? :) –

Odpowiedz

127

Typ: ctrl - vctrl - m

W Windows użytkowania: ctrl - qctrl - m

Ctrl - V V mówi, że kolejny wpisany znak powinien być wstawiony dosłownie, a jego znak skrótu klawiszowego to powrót karetki.

+9

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

+1

Jeśli korzystasz z domyślnej instalacji systemu Windows, zastąp CTRL + V CTRL + Q, ponieważ CTRL + V zostanie ponownie zamodelowany do "wklejania". –

+8

Po dużym headbangingu dodaję to tutaj, mimo że jest to stare pytanie: aby wstawić literał CR z komendy s: s, musisz poprzedzić go ukośnikiem odwrotnym lub vim (7.1.314) przekonwertuje go na koniec znaku linii odpowiedniego dla twojego ustawienia formatu pliku. tzn. wpisz ': s /.../\^V^M/g'. – DerfK

Powiązane problemy