Le altre risposte hanno spiegato perché questo accade. Ecco un bel modo per aggirare il problema.
wellle / target.vim . Di recente ho trovato questo plugin e penso che sia estremamente sottovalutato. Fornisce un nuovo oggetto di testo: din(
Mnemonico:. (D) elete (i) nside (n) ext "(" Questa è compatibile con altri operatori e diversi oggetti, quali an(
, in"
, il(
(all'interno ultimo parentesi)
Sovrascrive anche il comportamento predefinito in i(
modo che prima guardi se il cursore è tra parentesi e, in caso contrario, funziona allo stesso modo di in(
. Questo comportamento può essere attivato o disattivato. Per esempio:
def foo(bar):
^cursor here
La digitazione si ci(
comporta come cin(
, poiché il cursore non è tra parentesi.
def foo( ):
^Cursor here, and in insert mode
Questo accetta anche un conteggio:
def foo(bar): #Define function foo(bar)
^cursor here
Digitando c2in(
:
def foo(bar): #Define function foo( )
^cursor here
Ciò fornisce anche un nuovo oggetto, "argomento". Ad esempio, dana
significa "Elimina attorno all'argomento successivo". Questo accetta anche un conteggio. Per esempio:
def foo(arg1, arg2, BADarg3):
^ cursor here
Digitando d3ana
:
def foo(arg1, arg2):
^ cursor here
Ci sono molte altre funzionalità di questo plugin, ma queste sono quelle di base.