Tôi sử dụng vim để xóa tất cả các dòng ngoại trừ các dòng khớp với một chuỗi cụ thể, ví dụ:
: g! / [chuỗi mà tôi muốn ở lại trong trình chỉnh sửa] / d
Công trình tuyệt vời. Nhưng điều tôi thực sự muốn và không tìm thấy ở bất cứ đâu, là cách sử dụng vim để xóa tất cả ngoại trừ nhiều chuỗi.
Ví dụ: giả sử tôi mở tệp với thông tin sau:
Dave came at 12PM
Lucy came at 11AM
Trish came at 5PM
John ate lunch at 2PM
Virgil left at 3PM
Dave left at 6PM
và tôi muốn chỉ còn lại các sự kiện đề cập đến Dave và John - tôi có thể sử dụng lệnh vim nào để kết thúc với:
Dave came at 12PM
John ate lunch at 2PM
Dave left at 6PM
Tôi nhận ra rằng tôi có thể sử dụng các công cụ dòng lệnh như findstr trong Windows và các công cụ khác trong * nix, nhưng tôi ở vim khá thường xuyên và không thể thực hiện được với bất kỳ lệnh regex hoặc vim nào sẽ làm điều này. Cảm ơn bạn!