Siguiente: Grabar y reproducir comandos
Subir: Utilidades adicionales
Anterior: Recordar el lugar en
  Índice General
Hay una forma especial de arrancar Vim que sirve para mostrar las
diferencias entre dos ficheros se trata de
0 0«vimdiff fichero1 fichero20 0»
Cuando Vim es llamado de esa manera, ambos ficheros son analizados y
cada uno de ellos es colocado en una ventana vertical, de tal manera que
podamos examinarlos a doble columna. No se muestra, sin embargo, todo el
texto, sino exclusivamente aquellas secciones en las que Vim haya detectado
alguna diferencia, la cual, además, estará coloreada, aunque en un fichero
con sintaxis muy florida puede ser difícil distinguir qué colores se deben
a la sintaxis y qué otros a las diferencias; por ello aquí puede ser una
buena idea desactivar el reconocimiento de sintaxis.
La misma utilidad la podemos activar desde Vim, suponiendo que hayamos
arrancado de modo normal y estemos editando un buffer concreto. En tal caso
el comando 0 0«:vertical diffsplit fichero0 0» provocará que fichero
sea leído y mostrado en una ventana vertical junto a nuestro buffer actual,
marcando las diferencias entre uno y otro.
Por último, si tenemos un fichero diff con las diferencias, o un fichero
patch, podemos, tras haber cargado el fichero original en un buffer,
ejecutar el comando 0 0«:vertical diffpatch fichero0 0» donde fichero es el
fichero diff. Esto provocará que al buffer asociado a nuestro fichero
inicial se le aplique el parche, aunque el fichero en sí mismo considerado
quedará inalterado hasta que decidamos guardar los cambios de nuestro
buffer.
Esta es una forma cómoda de ver los efectos de un parche antes de
aplicarlo.
En este modo de funcionamiento, están activadas ciertas características:
- Los dos ficheros mostrados quedan vinculados, de tal manera que al
hacer scroll en uno de ellos, o al mover el cursor hacia cierto lugar, en
el otro se mostrará la misma sección. Esto hace que los movimientos de
cursor sean más lentos, por lo tanto puede interesarnos desactivar esta
opción ejecutando el comando 0 0«:set noscrollbind0 0».
- Podemos saltar directamente a las zonas en las que hay una diferencia
entre ambos ficheros mediante los comandos 0 0«]c0 0», para ir a la próxima
diferencia, y 0 0«[c0 0» para ir a la diferencia anterior.
- Recomprobar las diferencias. Mientras vamos haciendo cambios, Vim
intenta mantener actualizado el control de las diferencias, aunque eso no
siempre es fácil cuando los cambios son muchos, o son más complejos que la
simple supresión y adición de líneas. Por ello podemos ejecutar el comando
0 0«:diffupdate0 0» para forzar a Vim a recomprobar los ficheros.
- Para eliminar una diferencia podemos mover el texto resaltado de una
ventana a otra. Para ello podemos usar los comandos 0 0«dp0 0» y
0 0«do0 0». El primero hace que en la ventana inactiva se copie el contenido
de la activa, y el segundo al revés, hace que la ventana activa se ajuste
al contenido de la inactiva. Por ejemplo: colocando el cursor sobre un
bloque de texto existente en una de las ventanas y en el otro no, ``dp''
hará que ese bloque se copie a la otra ventana, y ``do'' hará que ese
bloque se elimine de la ventana actual.
Siguiente: Grabar y reproducir comandos
Subir: Utilidades adicionales
Anterior: Recordar el lugar en
  Índice General
Cancerbero
2005-02-12