Les autres réponses existantes dépendent toutes de la définition et de la détection d'un bloc par vim. Ma stratégie pour ce type de suppressions est d'utiliser la c
commande combinée avec le f
mouvement et le personnage réel pour s'arrêter. Cela supprimera alors réellement le caractère d'arrêt, mais comme il s'agissait également de la dernière touche que vous avez appuyée en le répétant deux fois, son coût est presque nul, et cela le réinsérera depuis le passage c
au mode d'insertion.
Pour expliquer avec des exemples, par
func1(x|, func2(), y);
la commande c2f))
donnera
func1(x)|;
qui peut à première vue sembler moins élégant que certaines des autres réponses, notez cependant que cette stratégie est universelle et ne dépend d'aucune définition de bloc.
Par exemple avec
<div| class="some-class">text</div>
la commande cf>>
donnera
<div>|text</div>
Ou lors de l'édition de fichiers csv comme
2016-11-29,question,vi|.stackexchange.com,10435
la commande cf,,
donnera
2016-11-29,question,vi,|10435
Souvent, je l'utilise pour supprimer le reste d'une chaîne, de
printf("Hello world| - a boring example\n");
à
printf("Hello world\|n");
avec cf\\
ou de
print("Hello world| - a boring example");
à
print("Hello world"|);
avec cf""
.
Cela change la position actuelle à un endroit légèrement différent de celui demandé, et passe également en mode d'insertion. Mais je voulais partager ma solution pour supprimer le reste de quoi que ce soit.
C);
dans ce cas particulier.