Các câu trả lời hiện có khác đều phụ thuộc vào định nghĩa và phát hiện khối của vim. Chiến lược của tôi cho loại xóa này là sử dụng c
lệnh kết hợp với f
chuyển động và nhân vật thực tế để dừng lại. Điều này sau đó sẽ thực sự xóa ký tự dừng, nhưng vì đó cũng là phím cuối cùng bạn nhấn lặp lại, hai lần có chi phí bằng 0 và sẽ chèn lại nó khi c
thay đổi chế độ chèn.
Để giải thích với các ví dụ, cho
func1(x|, func2(), y);
lệnh c2f))
sẽ đưa ra
func1(x)|;
lúc đầu có vẻ kém thanh lịch hơn một số câu trả lời khác, tuy nhiên lưu ý rằng chiến lược này là phổ biến và không phụ thuộc vào bất kỳ định nghĩa khối nào.
Ví dụ với
<div| class="some-class">text</div>
lệnh cf>>
sẽ đưa ra
<div>|text</div>
Hoặc khi chỉnh sửa tập tin csv như
2016-11-29,question,vi|.stackexchange.com,10435
lệnh cf,,
sẽ đưa ra
2016-11-29,question,vi,|10435
Tôi thường sử dụng điều này để xóa phần còn lại của chuỗi, từ
printf("Hello world| - a boring example\n");
đến
printf("Hello world\|n");
với cf\\
hoặc từ
print("Hello world| - a boring example");
đến
print("Hello world"|);
với cf""
.
Điều này không thay đổi vị trí hiện tại thành một nơi hơi khác so với yêu cầu và cũng thay đổi thành chế độ chèn. Nhưng tôi muốn chia sẻ giải pháp đi để xóa phần còn lại của mọi thứ.
C);
trong trường hợp cụ thể này.