2009-08-27 24 views
19

¿Es posible que VIM destaque las líneas modificadas desde el último guardado? Sé que se puede hacer con el control de versiones, pero ¿se puede hacer sin él? No quiero usar ningún sistema de control de versiones, porque el código en el que trabajo no tiene eso.Vim: resalte las líneas cambiadas

Creo que UltraEdit tiene algo así.

+0

Parece que está intentando hacer que vim sea un sistema de control de versiones, por lo que está intentando agregar un VCS. ¿Por qué no usar una herramienta diseñada para esa tarea? –

+2

Aunque le he dado una respuesta más directa a su pregunta, tengo que estar de acuerdo con William Pursell en que se podría decir mucho sobre el uso de un VCS, incluso si es solo uno con el repositorio retenido localmente en la carpeta de trabajo de el proyecto (como bazar, mercurial o git). No hay servidor para configurar y le ofrece un servicio de deshacer invaluable más allá de lo que se puede hacer con cualquier editor. Solo mi opinión, sin embargo ... – DrAl

+1

Tengo svn para la mayoría de mis otros proyectos, y sé lo valioso que es, pero no este en particular. Y no quiero configurar un repositorio para algunos archivos. La respuesta de AI es solo lo que necesitaba. – Ayman

Respuesta

17

De here:

if !exists(":DiffOrig") 
    command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis 
      \ | wincmd p | diffthis 
endif 

A continuación, sólo lo hacen :DiffOriget voila!

:help :DiffOrig 
+0

Use ': diffoff' para volver a desactivarlo. Ya hay una discusión sobre ': DiffOrig' en Stackoverflow, ej. [aquí] (http://stackoverflow.com/questions/6426154/taking-a-quick-look-at-difforig-then-switching-back). – glts

2

si está usando CVS, Git o Subversion para los archivos de origen a continuación, este script plugin hacer lo que quiera: VIM svndiff

probablemente no sería demasiado difícil de conseguir que funcione de un diff de un archivo temporal en su lugar (si ya no tiene esa opción).

0

Necesita un archivo temporal para comparar, y no estoy seguro de que Vim tenga uno (tiene un archivo .swp, pero no sé cómo podría explotarse).

De todos modos una posibilidad (extravagante) podría ser utilizar el genérico SCMdiff y escribir un script de línea de comandos que realiza una diferencia entre el archivo actual y una versión .tmp de la misma. También debe asignar un comando que guarde el archivo .tmp para la versión actual, tal vez llamando automáticamente cada vez que guarde.

6

De vim wiki

Tipo ": cambios" para mostrar las líneas donde se produjeron cambios.

Use "g"; y "g" para saltar a las líneas modificadas

Cuestiones relacionadas