Mevcut diğer cevapların tümü, Vim'in bir blok tanımına ve tespitine bağlıdır. Bu tür silmelere yönelik stratejim, ckomutu, fhareketle ve durulacak gerçek karakterle birlikte kullanmaktır. Bu daha sonra durma karakterini siler, ancak aynı zamanda iki kez tekrarladığınızda en son bastığınız anahtar olduğundan, sıfır maliyetin yanında olur ve cekleme modundaki değişikliklerden sonra tekrar ekleyecektir.
Örneklerle açıklamak,
func1(x|, func2(), y);
komut c2f))verecek
func1(x)|;
ilk başta diğer cevapların bazılarından daha az zarif görünebilir ancak bu stratejinin evrensel olduğunu ve herhangi bir blok tanımına bağlı olmadığını unutmayın.
Örneğin
<div| class="some-class">text</div>
komut cf>>verecek
<div>|text</div>
Veya csv dosyalarını düzenlerken
2016-11-29,question,vi|.stackexchange.com,10435
komut cf,,verecek
2016-11-29,question,vi,|10435
Genellikle bunu bir dizenin geri kalanını silmek için kullanırım.
printf("Hello world| - a boring example\n");
için
printf("Hello world\|n");
ile cf\\
veya
print("Hello world| - a boring example");
için
print("Hello world"|);
ile cf"".
Bu, geçerli konumu istenenden biraz farklı bir yere değiştirir ve ayrıca ekleme moduna geçer. Ama geri kalan her şeyi silmek için çözüme gitmek istediğimi paylaşmak istedim.
C);bu durumda yapardım .