Les autres réponses ont expliqué pourquoi cela se produit. Voici une belle façon de contourner ce problème.
wellle / target.vim . J'ai récemment trouvé ce plugin, et je pense qu'il est extrêmement sous-estimé. Il fournit un nouvel objet texte: din(
Mnémonique:. (D) elete (i) nside (n) poste « ( » Ceci est compatible avec d' autres opérateurs et plusieurs objets différents, tels que an(
, in"
, il(
( à l' intérieur dernière parenthèse)
Il remplace également le comportement par défaut de i(
afin qu'il regarde d'abord si le curseur est entre parenthèses, puis s'il ne l'est pas, il fonctionne de la même manière que in(
. Ce comportement peut être activé ou désactivé. Par exemple:
def foo(bar):
^cursor here
La saisie ci(
agit de la même manière que cin(
, puisque le curseur n'est pas entre parenthèses.
def foo( ):
^Cursor here, and in insert mode
Cela accepte également un décompte:
def foo(bar): #Define function foo(bar)
^cursor here
Dactylographie c2in(
:
def foo(bar): #Define function foo( )
^cursor here
Cela fournit également un nouvel objet, "argument". Par exemple, dana
signifie "Supprimer autour de l'argument suivant". Cela accepte également un décompte. Par exemple:
def foo(arg1, arg2, BADarg3):
^ cursor here
Dactylographie d3ana
:
def foo(arg1, arg2):
^ cursor here
Il existe de nombreuses autres fonctionnalités de ce plugin, mais ce sont les principales.