A veces uso marcas para navegar fácilmente a través de diferentes archivos usando mA
, mB
... y 'A
, 'B
...
Y en algún momento (más a menudo de lo que me gustaría admitir) debido a la falta de atención o por el motivo que sea, lo uso m[LETTER]
con una marca ya existente que borra su valor anterior cuando no quiero. La mayoría de las veces cuando hago eso no tengo abierto el archivo originalmente señalado por la marca.
En este caso, cuando me di cuenta inmediatamente de que había cometido un error, ¿es posible obtener el valor anterior de mi marca además de recordar a dónde apuntaba, navegar a esta ubicación y configurarla nuevamente?
No he encontrado un comando como ese en el documento, así que si eso no existe, ¿hay alguna solución inteligente que algunos de ustedes usen en esta situación?
ctrl-o
,ctrl-i
y:jumps
) con su propia memoria personal :)Respuestas:
Aquí hay algunos VimScript básicos que hacen aproximadamente lo que quieres.
Sobreescribimos al
ma
través demz
asignaciones para almacenar el valor actualg:previous_marks
antes de llamar al originalm
para la creación efectiva de la marca. También definimos<Leader>ma
a través<Leader>mz
de mostrar la historia de dicha marca.Probablemente desee almacenar la información de
g:previous_marks
una manera más organizada y agregar la capacidad de restaurar rápidamente una marca (en lugar de solo ver las ubicaciones), pero este ejemplo muestra cómo se puede hacer, se dejan más ajustes como ejercicio al lector ;-)fuente
No es exactamente lo que quieres, pero quizás sea más útil: el complemento de firma . Muestra las marcas actuales como signos en el margen de la canaleta y tiene accesos directos simples para editarlas. También puede poner la lista de signos en una lista de ubicaciones para un acceso rápido.
fuente
Dado que el problema real parece ser la navegación entre múltiples archivos / posiciones, sugeriría esta solución simple, que se basa en el complemento Unite :
Este comando (que se puede asignar a algo como,
<leader>j
por ejemplo) mostrará la lista de salto, con una vista previa: cada vez que navegue por la lista conj
/k
, se mostrarán varias líneas alrededor de la posición del cursor en ese archivo.Alternativa:
Las marcas predeterminadas son muy fáciles de sobrescribir: quizás los marcadores con nombre se ajusten mejor a su caso de uso, por ejemplo, con el complemento simple_bookmarks .
fuente