2009-10-18 28 views
73

Tôi đang chỉnh sửa khung giao thức mạng lưu trữ một tệp trong Unix (\n dòng mới). Tôi cần phải chèn ký tự trả về vận chuyển (U+000D aka \r). Khi tôi cố gắng để dán nó từ clipboard ("+p) hoặc gõ nó bằng cách sử Ctrl +phím Shift +u - 000d, các linefeed được chèn (U+000A).Chèn ký tự trả về vận chuyển trong vim

Cách phù hợp để làm điều đó là gì?

+1

:% s/\\ n/\\ r/g không hoạt động? – LB40

+0

Không. Tôi đoán việc trốn thoát của bạn có thể sai. Bạn có thể đề xuất một giải pháp dựa trên regexp khác (làm việc) không? :) –

Trả lời

127

Loại: ctrl - vctrl - m

Trên Windows Sử dụng: ctrl - qctrl - m

Ctrl - V cho vi rằng ký tự tiếp theo được nhập phải được chèn theo nghĩa đen và ctrl - m là tổ hợp phím cho việc trả về vận chuyển.

+9

Cảm ơn, điều này làm việc cho tôi. Có thể tìm thấy sự trợ giúp bằng cách sử dụng ': help ins-special-keys'. –

+1

Nếu bạn đang sử dụng cài đặt Windows mặc định thì hãy thay thế CTRL + V bằng CTRL + Q do CTRL + V được tạo lại thành 'dán'. –

+8

Sau nhiều headbanging, tôi thêm vào đây mặc dù đây là một câu hỏi cũ: để chèn một ký tự CR từ lệnh a: s, bạn phải đặt trước nó bằng dấu gạch chéo ngược hoặc vim khác (7.1.314) sẽ chuyển đổi nó sang cuối của ký tự dòng thích hợp cho cài đặt tệp của bạn. tức là nhập ': s /.../\^ V^M/g'. – DerfK

Các vấn đề liên quan