Tôi muốn chèn một từ trong nhiều dòng, có bất kỳ lệnh nào như
:[2,3,5,7,11]s/^/word\ /g
cái nào sẽ chèn word
vào đầu dòng 2, dòng 3, dòng 5, dòng 7 và dòng 11?
Ở đây, nhiều dòng không liền nhau.
Tôi muốn chèn một từ trong nhiều dòng, có bất kỳ lệnh nào như
:[2,3,5,7,11]s/^/word\ /g
cái nào sẽ chèn word
vào đầu dòng 2, dòng 3, dòng 5, dòng 7 và dòng 11?
Ở đây, nhiều dòng không liền nhau.
Câu trả lời:
Thực hiện thay thế trên một số dòng liên tiếp là khá dễ dàng:
:2,11s/^/word /
nhưng một phạm vi không thể bao gồm các dòng không liên tiếp.
Tuy nhiên, với một chút sáng tạo, hoàn toàn có thể giải quyết "giới hạn" đó.
Thật vậy, bạn có thể lặp lại sự thay thế cuối cùng bằng :&
hoặc :&&
(cái trước sẽ không bảo toàn các cờ gốc, cái sau sẽ) để bạn có thể thay thế chuỗi khá dễ dàng:
2s/^/word /|3&|5&|7&|11&
Xem :help :&
và cuộn xung quanh cho :&&
.