Si no le importa presionar una combinación diferente cw
, entonces creo que puede obtener lo que quiere fácilmente, definiendo un acceso directo. Lo que puedes hacer es colocar lo siguiente
nmap <leader>a "1yiw:let @/=@1^Mciw
en su .vimrc
archivo Tenga en cuenta que ^M
es una captura de la tecla de retorno, y no los caracteres ^
y M
. Lo obtienes presionando Ctrl+ Ven modo de inserción seguido de Enter. Ahora, con esto definido, presionar <leader>a
hará lo mismo que cw
, pero ahora la palabra (antes del cambio) estará en su "último registro de búsqueda" (es decir, el /
registro), así que presionar ndespués de haber realizado el cambio y regresado al modo normal lo llevará a la próxima aparición. Del mismo modo, presionar lo Nllevará a la ocurrencia anterior.
El acceso directo Por supuesto, puede elegir un acceso directo diferente que <leader>a
, pero me parece que este es un acceso directo muy accesible. Personalmente, lo configuré <leader>
para ,
que solo necesite presionar ,seguido a, pero esto se debe a que no uso un teclado estadounidense, por lo que mi \está algo oculto (creo que \es el valor predeterminado <leader>
).
Explicación La idea es realmente simple. Tira la palabra debajo del cursor al registro de búsqueda /
y luego hazlo cw
. Por lo tanto nmap <leader>a "/yciw
era lo que yo buscaba, pero por desgracia no creo que se puede tire del mismo para el registro de búsqueda, por lo que la solución es dar un tirón a la palabra bajo el cursor al 1
registro, a continuación, establecer el /
registro igual a eso, y luego haces cw
. Así "1yiw
es la parte que tira de la palabra interna debajo del cursor al registro 1
. Si no sabe acerca de las palabras internas, puede verificar :help iw
. Luego, :let @/=@1
sigue una captura de Enterpone los contenidos del 1
registro en el /
. En este punto nyNfunciona como la ocurrencia siguiente y anterior de la palabra debajo del cursor, y luego ciw
se hace a para que la palabra debajo del cursor se elimine y Vim se ponga en modo de inserción.
palabra versus palabra interna Me acabo de dar cuenta de que asumí que querías la palabra completa debajo del cursor y no solo desde el punto del cursor y en adelante. Es por eso que usé en iw
lugar de en w
todas partes. Si este no es el caso, entonces debe usar
nmap <leader>a "1yw:let @/=@1^Mcw
en lugar. Si el cursor está en la primera letra de la palabra, no hay diferencia.
descargo de responsabilidad Esta solución probablemente no funcionará bien si intenta usarlo en algo que contiene diferentes cosas de letras, por ejemplo haciendo que el soporte cursor en una \
o sustituyendo iw
por iW
, ib
, is
o ip
, o algo (aunque no sé por qué lo haría quiere esta característica con oraciones completas)
*
búsqueda. Especialmente hace*
que seleccione visualmente la palabra actual sin mover el cursor. Una vez que esté instalado, puede hacer*ciw
para poner la palabra antigua en el registro de búsqueda y cambiar la palabra. Entonces puedes usarn
y.
.