vim - tool - vi diff 2 files
use vimdiff con un archivo diff (4)
¿Cómo puedo usar vimdiff para ver las diferencias descritas en un archivo diff?
¿Diría más acerca de por qué quiere usar vimdiff para esto?
Por ejemplo, ¿desea visualizar diferencias por carácter en un archivo diff (unificado)? . Si es así, alguien respondió mi pregunta al respecto con una sugerencia para básicamente disparar emacs en el diff y presionar ALT-n
para desplazarse a través de los bloqueos, resaltando muy bien los cambios por palabra o por caracteres en el camino (similar a vimdiff). Funciona bien, pero es un fastidio encender emacs solo para hacer esto. Solo conozco suficientes emacs para hacer eso y luego salgo sin reprimir el parche. :)
De todos modos, la respuesta de emacs me dio algunas ideas. Estoy seguro de que se puede engatusar a Vim para que destaque mejor los archivos diff, tal vez algo más como ediff. Investigué esto hace un tiempo, y alguien en la lista de usuarios de vim tuvo la excelente sugerencia de incorporar google-diff-match-patch . La interfaz de Python podría usarse desde un ftplugin de Python Vim, por ejemplo.
Perdón por usar una "respuesta" para responder cuando esta puede no ser una buena respuesta, el formato para "agregar comentario" era demasiado limitado para lo que quería decir.
Para la posteridad, aquí hay una referencia a otra pregunta similar (que también se vincula aquí).
Haga una copia del archivo original, aplique el diff y luego
vimdiff original_file patched_file
También puede ver las secuencias de comandos de vim.org que se han escrito para tratar con la salida de svn diff. Si está generando su diff desde un sistema de control de versión, eche un vistazo al vcscommand.vim: complemento de integración CVS / SVN / SVK / git .
Viniendo de la otra dirección. Escribí un plugin de Vim que muestra los cambios que se han realizado en un archivo desde la última vez que guardé en vimdiff o en formato unificado de diferencias.
Consíguelo aquí: diffchanges.vim
En lugar de usar el comando /usr/bin/vimdiff
, intente esto:
$ vim file :vertical diffpatch path/to/diff
( :vert diffpa
para abreviar)
Esto es equivalente a llamar a vimdiff
en el archivo original y el archivo subsiguientemente parcheado, pero vim
llama patch
a un archivo temporal por usted.
Editar
Si desea que el modo diff de vim
se ingrese automáticamente, use esto:
$ vim file +''vert diffpa path/to/diff''
donde +command
le pide a vim
que ejecute "comando". ( +123
salta a la línea 123, +/abc
salta a la primera coincidencia para "abc", está todo documentado).
En cuanto a la consulta de Ken: si el archivo diff incluye trozos que se aplican a archivos que no sean el que está editando actualmente, no se preocupe; vim
llama al patch
ejecutable que se encuentra debajo, que le pedirá la ubicación de estos archivos misteriosamente perdidos, y puede decirle al patch
que saltee esos trozos.