Sé que el modo diff de Vim ( vimdiff
) nos permite comparar el contenido de dos (o más) archivos.
Pero, ¿es posible comparar el contenido de múltiples archivos entre directorios para fusionar dos directorios de forma recursiva (como DiffMerge y herramientas similares)?
filesystem
vimdiff
kenorb
fuente
fuente
Respuestas:
Existe el complemento DirDiff.vim ( GitHub ) para diferenciar y fusionar dos directorios de forma recursiva.
Uso:
Para más información / ayuda:
:help dirdiff
Ver la captura de pantalla:
Ver también:
¿Comparar y fusionar directorios de forma recursiva? en el blog dedm
fuente
Utilizo un script de contenedor
python
para fusionar archivos (ver más abajo). Esta es una versión simplificada de lo que uso para fusionar mis~/.vim
directorios y demás.Debería funcionar en Python 2 y 3; pero probablemente no en versiones muy antiguas de Python como se incluyen con CentOS y algunas otras distribuciones.
Tenga en cuenta que algunas comprobaciones (como la de los archivos binarios, o si los archivos son iguales) no son muy rápidas (lee todo el archivo); puedes eliminarlos si quieres.
Tampoco informa si a solo está presente en uno de los directorios ...
fuente
He querido lo mismo por un tiempo. La mejor solución que encontré fue usar vdwrap , que funciona increíblemente bien. Todo lo que hace es envoltura
git difftool --dir-diff
paravimdiff
. No requiere ningún complemento vim.Todo lo que necesita hacer es decirle
git difftool
que usevdwrap
:La próxima vez que use git difftool, abrirá Vim con pestañas de Vim separadas para cada par de archivos.
Una advertencia es que es un script Zsh. Debería ser bastante simple convertirlo a un script bash, pero no lo he probado.
fuente
Si solo desea usar vimdiff sin instalar nada adicional, el siguiente comando abrirá todos los archivos diferentes en sucesión, lo que le permitirá ver los cambios con vimdiff:
fuente
Hay una solución ligera para eso:
diff dir1 dir2 | vim -R -
en la cáscara.Agregará pliegues y una comparación lado a lado para los archivos modificados.
fuente