Las otras respuestas cubrieron por qué sucede esto. Aquí hay una buena manera de evitarlo.
Wellle / Target.vim . Hace poco encontré este complemento y creo que está extremadamente subestimado. Se proporciona un nuevo objeto de texto: din(
Mnemonic:. (D) elete (i) nside (n) ext "(" Esto es compatible con otros operadores y varios objetos diferentes, tales como an(
, in"
, il(
(en el interior último paréntesis)
También anula el comportamiento predeterminado de i(
modo que primero busca ver si el cursor está entre paréntesis, y luego, si no lo está, funciona de la misma manera que in(
. Este comportamiento se puede activar o desactivar. Por ejemplo:
def foo(bar):
^cursor here
La escritura ci(
funciona igual que cin(
, ya que el cursor no está entre paréntesis.
def foo( ):
^Cursor here, and in insert mode
Esto también acepta un recuento:
def foo(bar): #Define function foo(bar)
^cursor here
Escribiendo c2in(
:
def foo(bar): #Define function foo( )
^cursor here
Esto también proporciona un nuevo objeto, "argumento". Por ejemplo, dana
significa "Eliminar alrededor del siguiente argumento". Esto también acepta un recuento. Por ejemplo:
def foo(arg1, arg2, BADarg3):
^ cursor here
Escribiendo d3ana
:
def foo(arg1, arg2):
^ cursor here
Hay muchas otras características que tiene este complemento, pero estas son las básicas.