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, c
komutu, f
hareketle 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 c
ekleme 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 .