Le altre risposte esistenti dipendono tutte dalla definizione di vim e dal rilevamento di un blocco. La mia strategia per questo tipo di eliminazioni è quella di utilizzare il c
comando combinato con il f
movimento e il personaggio reale per fermarsi. Questo eliminerà quindi effettivamente il carattere di arresto, ma poiché è stato anche l'ultimo tasto che hai premuto ripetendolo due volte ha un costo prossimo allo zero, e questo lo inserirà di nuovo poiché c
passa alla modalità di inserimento.
Spiegare con esempi, per
func1(x|, func2(), y);
il comando c2f))
darà
func1(x)|;
che all'inizio potrebbero sembrare meno eleganti di alcune delle altre risposte, tuttavia si noti che questa strategia è universale e non dipende da alcuna definizione di blocco.
Ad esempio con
<div| class="some-class">text</div>
il comando cf>>
darà
<div>|text</div>
O quando si modificano file CSV come
2016-11-29,question,vi|.stackexchange.com,10435
il comando cf,,
darà
2016-11-29,question,vi,|10435
Spesso lo uso per eliminare il resto di una stringa da
printf("Hello world| - a boring example\n");
a
printf("Hello world\|n");
con cf\\
o da
print("Hello world| - a boring example");
a
print("Hello world"|);
con cf""
.
Ciò cambia la posizione corrente in una posizione leggermente diversa da quella richiesta e cambia anche nella modalità di inserimento. Ma volevo condividere la mia soluzione per eliminare tutto il resto.
C);
in questo caso particolare.