As outras respostas existentes dependem da definição do vim e da detecção de um bloco. Minha estratégia para esse tipo de exclusão é usar o c
comando combinado com o f
movimento e o caractere real para parar. Na verdade, isso excluirá o caractere de parada, mas como também foi a última tecla pressionada, repeti-lo duas vezes tem custo quase zero, e isso será inserido novamente, pois c
muda para o modo de inserção.
Para explicar com exemplos, por
func1(x|, func2(), y);
o comando c2f))
dará
func1(x)|;
que pode parecer menos elegante do que algumas das outras respostas, no entanto, observe que essa estratégia é universal e não depende de nenhuma definição de bloco.
Por exemplo, com
<div| class="some-class">text</div>
o comando cf>>
dará
<div>|text</div>
Ou ao editar arquivos csv como
2016-11-29,question,vi|.stackexchange.com,10435
o comando cf,,
dará
2016-11-29,question,vi,|10435
Freqüentemente eu uso isso para excluir o restante de uma string, de
printf("Hello world| - a boring example\n");
para
printf("Hello world\|n");
com cf\\
ou de
print("Hello world| - a boring example");
para
print("Hello world"|);
com cf""
.
Isso altera a posição atual para um local ligeiramente diferente do solicitado e também muda para o modo de inserção. Mas eu queria compartilhar minha solução para excluir o resto de qualquer coisa.
C);
neste caso em particular.