2010-02-03 26 views

Trả lời

5

Zero-width nhìn đằng sau khẳng định

"Làm thế nào để tìm kiếm cho‘\ n’mà không có một trước‘\ r’trong vim?"

/\r\@<!\n 

Bạn tìm kiếm và thay thế các trường hợp này bằng "\ r \ n" như thế nào?

:%s/\r\@<!\n/\r\n/gc 

Loại bỏ "c" cuối cùng nếu bạn muốn chấp nhận mọi trận đấu mà không cần xác nhận.

Chỉnh sửa: Tuy nhiên, nếu bạn muốn có câu trả lời mà bạn có thể nhớ cách thực hiện mà không cần phải nhìn trước/sau xác nhận hàng tỷ lần, hãy xem câu trả lời của Jackson Miller. Đôi khi nó là tốt hơn để đơn giản hóa vấn đề của bạn và sử dụng các công cụ mà không yêu cầu bạn phải đọc hướng dẫn liên tục :)

+0

Việc tìm kiếm đã làm các trick cho tôi. BTW, kết thúc dòng có thể được thay đổi với: e + + ff = dos, sau đó: w –

+0

wow tôi không biết vim được hỗ trợ nhìn phía sau, mát mẻ! – calid

+0

Xin chào, tôi thích cách của bạn hơn Merlyn. Tôi chỉ có xu hướng làm cho nó được thực hiện với những gì tôi biết làm thế nào để làm. –

3

Cách thay thế \ r \ n bằng \ n và sau đó \ n bằng \ r \ n.

nên được một cái gì đó như:

:%s/\r\n/\n 
    :%s/\n/\r\n 
2

Để thay đổi tất cả kết thúc dòng được \ r \ n \ n, sử dụng

:%s/\r$// 

này sẽ tìm kiếm cho tất cả các ký tự \ r sau đó xuống dòng và thay thế bằng chỉ dòng mới

2

Sử dụng tiện ích như dos2unix hoặc unix2dos để chuyển đổi kết thúc dòng sang định dạng mong muốn. Có các bản cài đặt gốc của các tiện ích này cho cả hệ thống Unix và cửa sổ.

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