Nếu tôi muốn xóa từng từ, điều đó thật dễ dàng, bởi vì tôi sẽ làm một cái gì đó như thế này:
:s%/WORD//g
Nhưng nếu tôi muốn làm gì xyz
cho mỗi lần xuất hiện của "WORD" thì sao? Ví dụ: giả sử tôi muốn xóa mọi dòng có chứa "WORD". Tôi có thể nghĩ ra một vài cách để làm điều này, nhưng không ai trong số chúng có vẻ lý tưởng.
1)
/WORD
và sau đó nhấn thủ công ddnddnddnddn...
cho đến khi không còn xảy ra nữa. Nhưng điều này là tốn thời gian nếu có nhiều dòng để làm điều này trên.
2)
qd/WORD<enter>ddq
và sau đó đoán xem có bao nhiêu lần WORD xảy ra, và sau đó, ví dụ:
500@d
Nhưng điều này sẽ làm A) bỏ lỡ một loạt các dòng hoặc B) xóa một loạt các dòng bổ sung.
Có cách nào tốt hơn để làm điều này?
500@d
như bạn mô tả là thực sự an toàn. Phát lại macro sẽ dừng lại khi không tìm thấy cụm từ tìm kiếm. Vì vậy, bạn sẽ chỉ thấy một lỗi "Không tìm thấy mẫu: WORD" sau khi tất cả các dòng chứa nó đã bị xóa.