Estoy tratando de tener un deshacer resaltado en Vim, como la configuración predeterminada de spacemacs. A veces, cuando quiero deshacer rápidamente, no puedo darme cuenta de lo que cambió porque es instantáneo. Así que estoy tratando de tener algo como esto cuando una prensa deshace:
¿Alguien tiene una idea de cómo hacer esto en Vim?
(Ya tengo el complemento Gundo, solo quiero hacer que el deshacer predeterminado sea más fluido)
Editar : el plugin de Unotree hace el trabajo ( Gundo no resalta los cambios), solo use el UndotreeToggle
comando y todos los cambios futuros en el archivo se resaltarán.
matchadd()
, pero un poco más complicado es determinar qué partes del archivo han cambiado.Respuestas:
Nueva solución
Puede ver sus últimos cambios con el
:changes
comando. Por lo tanto, puede realizar su cambio de línea más reciente con una expresión regular y luego aplicar la líneamatchadd()
según lo sugerido por @joeytwiddle.Aquí está el código:
Nota :
Esta función solo agrega un nuevo resaltado sin eliminar el anterior, por lo que primero deberá eliminar el anterior.Con laclearmatches
función puede eliminar las coincidencias antes de agregar una nueva. Cuidado, eliminará TODAS las coincidencias. Si desea más granularidad, puede guardar su coincidencia y eliminarla manualmente:p.ej
Referencias
Vieja solución
Aquí hay una posible solución, inspirada principalmente en el búfer actual Diff y el archivo original :
La idea es diferenciar el archivo con el archivo en el sistema, para que pueda deshacer su último cambio, escribirlo, rehacer el último cambio y ejecutar el diferencial.
Creo que esto debería hacer el trabajo para las visualizaciones temporales temporales.
fuente
Verifique mi complemento de cambios y asegúrese de establecer la variable
g:changes_linehi_diff
en 1fuente
Para alguien que está intentando lo mismo de mí, eso es lo más cercano que alcancé gracias a las respuestas.
fuente