2010-01-07 24 views
6

Tôi có một tệp phân cách bằng tab (một dòng). Tôi có thể dễ dàng thay thế các tab bằng các dòng mới để tôi có thể xem các trường nào ở vị trí nàoTham gia tất cả các dòng có các tab được chèn (vim)

:%s/\t/\r/g 

Làm cách nào để làm ngược lại, sau khi tôi đã chỉnh sửa trường? Tôi có thể ghi lại macro:

Js<tab>Esc 

Và sau đó lặp lại tất cả các cách - nhưng có cách nào dễ dàng hơn không?

Trả lời

12

Làm thế nào về điều này:

:%s/\n/\t/ 
+0

Tôi rất ngạc nhiên rằng đây thực sự hoạt động. Tôi không có ý tưởng rằng '\ n' sẽ làm bất cứ điều gì cả trong một regex của lệnh thay thế. –

+0

guh - tất nhiên. Tôi cứ cố gắng làm:% s/$/\ t / – EMiller

5

Bạn có thể sử dụng s để thay thế dòng mới với các tab, về cơ bản trái ngược với những hoạt động mà bạn sử dụng để thay thế các tab với dòng mới:

:%s/\n/\t/ 
0
:1,$-1s/$/\t/|%j 

Điều này có nghĩa là: từ dòng đầu tiên đến hình phạt 1,$-1 thay thế kết thúc của dòng bằng một tab s/$/\t/ và sau đó | cho tất cả các dòng % tham gia cùng họ j

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