Die anderen Antworten deckten ab, warum dies geschieht. Hier ist ein guter Weg, um das Problem zu umgehen.
wellle / goals.vim . Ich habe dieses Plugin erst kürzlich gefunden und finde es extrem unterschätzt. Es bietet ein neues Textobjekt: din(
Mnemonic:. (D) elete (i) nside (n) ext "(" Dies ist kompatibel mit anderen Betreibern und verschiedenen Gegenständen, wie an(
, in"
, il(
(innen letzter Klammer)
Außerdem wird das Standardverhalten von überschrieben, i(
sodass zunächst geprüft wird, ob sich der Cursor in Klammern befindet. Wenn dies nicht der Fall ist, funktioniert dies auf die gleiche Weise wie bei in(
. Dieses Verhalten kann ein- oder ausgeschaltet werden. Beispielsweise:
def foo(bar):
^cursor here
Das Eingeben ci(
verhält sich genauso cin(
, da sich der Cursor nicht in Klammern befindet.
def foo( ):
^Cursor here, and in insert mode
Dies akzeptiert auch eine Zählung:
def foo(bar): #Define function foo(bar)
^cursor here
Eingabe c2in(
:
def foo(bar): #Define function foo( )
^cursor here
Dies liefert auch ein neues Objekt, "argument". Zum Beispiel dana
bedeutet "Löschen um das nächste Argument". Dies akzeptiert auch eine Zählung. Beispielsweise:
def foo(arg1, arg2, BADarg3):
^ cursor here
Eingabe d3ana
:
def foo(arg1, arg2):
^ cursor here
Es gibt viele andere Funktionen, die dieses Plugin bietet, aber dies sind die grundlegenden.