Estoy buscando algo que pueda instalar en un servidor Ubuntu que me permita comparar el contenido de PHP, Javascript, CSS, HTML y otros archivos de texto sin formato de una manera más presentable y comprensible que el diff
comando predeterminado.
Debe tener
Me gustaría tener
De manera óptima, me encantaría algo como la función de comparación de archivos de WinMerge:
para Ubuntu, pero entiendo que no todas las funciones pueden ser posibles para una aplicación solo para consola.
vimdiff file1 file2
También puedes usarlo con git, por ejemplo:
git difftool --tool=vimdiff HEAD^ HEAD
Así que quieres una herramienta de diferenciación interactiva con características muy básicas. La respuesta obvia es Emacs (Ubuntu: emacs
), que incluye a Ediff desde hace unos 20 años.
Abra los dos archivos que desea comparar y seleccione "Herramientas → Comparar (Ediff) → Dos búferes..." en el menú. O seleccione "Herramientas → Comparar (Ediff) → Dos archivos..." e ingrese los nombres de los archivos. Puede usar el comando ediff-buffers
o ediff
(alias de ediff-files
) en su lugar (presione Alt+ X, luego escriba ediff
y presione Enter). Los comandos principales en el modo Ediff son:
|
para alternar entre mostrar los dos archivos uno encima del otro (predeterminado) o uno al lado del otron
para pasar al siguiente bloque diferente de líneasp
para pasar al bloque de líneas diferente anteriorq
para salir del modo Ediff?
por ayudaC-x o
( Ctrl+ Xluego minúsculas O) para navegar entre los tres búferes (archivo 1, archivo 2 y el panel de control de Ediff).Ediff también puede hacer diferencias de 3 vías si tiene un archivo de ancestro común y puede ayudar en las fusiones. Las entradas en el menú "Herramientas" deberían ser suficientes para comenzar; vea el manual para más detalles.
Emacs también puede extraer revisiones automáticamente de svn y otros sistemas de control de revisiones. Busque en el menú "Herramientas → Control de versiones" o en el manual para obtener más información.
Puede sentirse más cómodo usando la versión GUI de Emacs. Emacs funciona en todos los principales sistemas operativos (en Windows, uso EmacsW32 ) y puede acceder a archivos remotos de forma transparente a través de SSH (y otros métodos). Para abrir un archivo remoto a través de SSH, escriba /name-of-host:/path/to/file
como nombre de archivo. En Windows, si está usando PuTTY para SSH, asegúrese de tener plink
instalado y en Emacs PATH
, y coloque (setq tramp-default-method "plink")
su archivo ~/.emacs
. Consulte el manual de Tramp para obtener más detalles.
Si te gusta diff
pero quieres que sea un poco más fácil de entender y leer, hay colordiff
- básicamente lo mismo que diff
pero con resaltado en color.
Para obtener una comparación lado a lado usando diff o colordiff, puede agregar la -y
opción. También puede usar sdiff
: genera una comparación lado a lado un poco más limpia que diff
con la -y
opción (al menos en Fedora, en Debian se ven más o menos iguales, aunque no estoy seguro de si eso es lo mismo para todos).
Resalta las palabras que son diferentes, en lugar de toda la línea.
También puede configurar el ancho de columna de la terminal para que coincida con su ancho/columnas actuales:
colordiff -y --width=$COLUMNS mylovelyfile1.txt mylovelyfile2.txt
Cristian Ciupitu