vim - modo - vi ir al final del archivo
Vim reemplazar todo sin mover el cursor (2)
En Vim, cuando hago:
:%s/foo/bar/g
Reemplazará toda la aparición de ''foo'' con ''barra'' en todo el documento. Cuando se completa, el cursor se ha movido a la última posición donde ''foo'' se reemplazó con ''bar''.
¿Cómo se ejecuta :%s/foo/bar/g
sin que el cursor abandone la posición original antes de emitir este comando?
¿Hay alguna opción que pueda establecer en el archivo .vimrc
?
Cuando se ejecuta el comando :substitute
, antes de que se realicen los reemplazos reales, la posición del cursor se almacena en una lista de salto. Para volver a la posición anterior al último salto, se pueden usar los comandos de modo ``
o ''''
Normal. Mientras que el primero salta exactamente a la posición almacenada, este último mueve el cursor al primer carácter que no está en blanco en la línea donde se encuentra esa posición.
Por lo tanto, para devolver rápidamente el cursor a su ubicación original, escriba ` ` después de que finalice el comando de sustitución.
Para combinar la sustitución y mover el cursor en un comando, ejecute
:%s/pat/str/g|norm!``
o, si es suficiente para saltar no a la posición precisa sino solo a su línea,
:%s/pat/str/g|''''
Como se muestra arriba, ''''
se puede usar con preferencia a la norm!''''
En el segundo comando debido a la sintaxis del rango de los comandos Ex (ver :help :range
).
Simplemente escribo Ctrl + O después del reemplazo para recuperar la ubicación anterior.