2012-12-07 68 views
19

Bất kỳ ai cũng có ý tưởng xóa tất cả khoảng trắng và thay thế bằng dấu phẩy , trong tệp bằng Vim? file ví dụ đầu vào (từ có thể ở khắp mọi nơi!):Xóa tất cả khoảng trắng trong một tệp và thay thế chúng bằng dấu phẩy bằng cách sử dụng Vim

C1  TEST PROD 
A1 BE 


T1  B1 

đầu ra tập tin ví dụ (tất cả các từ thuộc cùng một dòng giống như trong ví dụ dưới đây):

C1,TEST,PROD 
A1,BE 
T1,B1 

Tôi tìm thấy nó : %s/\s\{1,}/,/gc

Trả lời

47

Đầu tiên xóa các dòng trống:

:g/^\s*$/d 

Sau đó sử dụng quyền thay người (:s///) trên mỗi dòng (%) để thay thế tất cả (g) khoảng trắng liên tục (\s\+) bằng dấu phẩy (,).

:%s/\s\+/,/g 
+3

Giải thích của mỗi thành phần là đặc biệt hữu ích và thường bị bỏ qua trong những câu trả lời trên SO. Cảm ơn! (Điều đó nói rằng, tương tự cho dòng đầu tiên cũng sẽ hữu ích) – ryanjdillon

2

Một cách khác để làm điều đó:

%s/\s\{1,}/,/gc

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