Muchas veces edito un archivo, creo que mi trabajo está hecho, luego cierro el archivo y paso a lo siguiente. Pero luego me doy cuenta de que necesito volver a ese código y modificarlo un poco más.
Si vuelvo a abrir el archivo, puedo usar la .
marca y saltar a la posición de la última edición con '.
.
Ahora estoy tratando de encontrar una manera de usar las marcas de vim para saltar a ubicaciones en archivos que he visitado recientemente, pero que no he cambiado.
Sé que puedo establecer una marca manualmente, pero la mayoría de las veces, no espero volver y, por lo tanto, no establezco una marca y necesito usar una marca que vim genera automáticamente.
La "
marca parece que esto podría ser una forma de lograr esto, desde :h motion
.
"
A la posición del cursor la última vez que sale del búfer actual. El valor predeterminado es el primer carácter de la primera línea. Ver | last-position-jump | para saber cómo usar esto para cada archivo abierto. Solo se recuerda una posición por búfer, no una para cada ventana. Mientras el búfer esté visible en una ventana, la posición no cambiará. {no en Vi}.
Sin embargo si yo
- cierre todas las ventanas que muestran un búfer (pero el búfer todavía está presente en la lista de búfer). o:
- matar todas las instancias del búfer
la marca no parece actualizarse, ¿cómo puedo usar una marca para saltar a una ubicación de la última posición del cursor en el búfer / archivo?
fuente
Ctrl+o
yCtrl+i
...:h jump-motions
para obtener más informaciónviminfo
"
marca cuando abres un archivo. Realmente solo quería saltar a la última posición del cursor manualmente. Además, no podía entender cuándo"
se establece y actualiza la"
marca, por lo que para mí la marca no se puede usar.Respuestas:
Aquí hay una solución clásica: usar
para saltar al último archivo HTML y así sucesivamente ...
fuente
WinLeave
como he notadoBufLeave
que no parece dispararse cuando cierras una división y el búfer todavía está abierto en otro lugar. Sé que es un caso marginal, peroWinLeave
parece funcionar en una gama más amplia de situaciones de tipo "cierre de archivo", pero todavía estoy probando ...Escribí esta declaración vimscript que parece funcionar
Explicación
BufLeave
comando automático: esto parece activarse cuandobd
:normal
- Parece que por defecto, lacommand
parte de autocmd es un comando ex. Entonces, para decirle a vim que ejecute un comando en modo normal, debe agregar:normal
ml
- establecer una marcal
(mnemotécnico: último )Uso
para recuperar la posición del cursor desde la última vez que estuvo en el búfer simplemente presione
o
fuente
Si desea que su cursor restaure la última posición conocida por viminfo , puede usar
La respuesta de romainl me ha sido particularmente útil, y he estado usando esto mucho (ya que soy un desarrollador web):
La última cosa potencialmente útil es la opción
:help 'nostartofline
:fuente