En vim, ¿cómo vuelvo a donde estaba antes de la búsqueda?
Pregunta
Programando en vim A menudo busco algo, lo tiro, luego vuelvo a donde estaba, lo inserto y lo modifico.
El problema es que después de buscar y encontrar, necesito encontrar MANUALMENTE el camino de regreso a donde estaba.
¿Existe alguna forma automática de volver a donde estaba cuando inicié mi última búsqueda?
Solución
Control+oh me lleva a la ubicación anterior.No sé sobre la ubicación antes de la búsqueda.
Editar:También, `. Lo llevará al último cambio que realizó.
Otros consejos
Usar ``
para volver a la posición exacta en la que estaba antes de buscar/saltar, o ''
para volver al inicio de la línea en la que estaba antes de buscar/saltar.
Siempre lo he hecho dejando una huella.
En modo comando, presione m [letra].Por ejemplo, m un establece una marca en la línea actual usando a como identificador de marca.
Para volver a la marca presione ' [carta].Por ejemplo, ' a lo lleva de regreso a la marca establecida en el paso 1.
Para ver todas las marcas que se establecen actualmente, escriba :marcas.
En una nota ligeramente ajena, acabo de descubrir otra cosa ingeniosa sobre las marcas.
Digamos que saltas a la marca b haciendo 'b.Vim establece automáticamente la marca ' (es una comilla simple) debe ser la línea en la que estaba antes de saltar a la marca b.
Eso significa que puedes hacer 'b para saltar a esa marca, entonces hazlo '' (2 comillas simples) para volver a donde estabas antes.
Descubrí esto accidentalmente usando el :marcas comando, que muestra una lista de todas las marcas.
Realmente deberías leer :help jumplist
explica todo esto muy bien.
CTRL+O y CTRL+I, para saltar hacia adelante y hacia atrás.
La forma más sencilla es establecer una marca, con m[letter]
, luego vuelve a ello con '[letter]
Yo uso este:
nnoremap / ms/
nnoremap ? ms?
Entonces si busco algo usando /
o ?
, puedo regresar rápidamente `s
.Podrías reemplazar la letra. s
a cualquier letra que quieras.