two tool software files diffuse and linux vim diff command-line-interface vimdiff

linux - tool - ¿Cómo expandir/contraer una sección de diferencias en Vimdiff?



text compare linux (4)

Comencé a usar vimdiff hoy, y quería hacer algunas de las cosas que he dado por sentado en los editores de diferencias basados ​​en Windows (como expandir / contraer una sección de diferencias, tener una expansión de archivo completa / solo diferencias con 3 líneas de contexto arriba o abajo, etc.). Actualmente solo conozco los siguientes comandos:

Atajos de teclado:

  • d o - Obtener cambios de otra ventana en la ventana actual.

  • d p - Coloque los cambios de la ventana actual en la otra ventana.

  • ] c - Salta al siguiente cambio.

  • [ c - Salta al cambio anterior.

  • CTRL + W , w - Cambia a la otra ventana dividida ( CTRL + W , CTRL + W hace lo mismo, en caso de que sueltes la tecla CTRL un poco más tarde)

¿Alguien podría indicarme la dirección correcta para poder replicar características similares?

Sería bueno si pudiera expandir / contraer líneas alrededor de las diferencias, por ejemplo.


Aparte de los que mencionas, solo uso con frecuencia cuando difiero lo siguiente:

  • :diffupdate -> recalcular el diff, útil cuando después de hacer varios cambios, vim''s ya no muestra los cambios mínimos. Tenga en cuenta que solo funciona si los archivos se han modificado dentro de vimdiff. De lo contrario, utilice:
    • :e para volver a cargar los archivos si se han modificado fuera de vimdiff.
  • :set noscrollbind -> deshabilita temporalmente el desplazamiento simultáneo en ambos buffers, :set scrollbind habilitar :set scrollbind y scrolling.

La mayor parte de lo que solicitó es plegado: vim capítulo del manual de usuario sobre plegado . Fuera de diffs yo uso alguna vez:

  • zo -> pliegue abierto.
  • zc -> cerrar plegado.

Pero probablemente será mejor atendido por:

  • zr -> reduciendo el nivel de plegado.
  • zm -> un nivel más plegable, por favor.

o incluso:

  • zR -> ¡Reduce completamente el plegado, dije !.
  • zM -> doblar la mayoría !.

La otra cosa que pidió, use n líneas de plegado, puede encontrarla en la sección de referencia de vim del manual sobre opciones , a través de la sección sobre diferencias :

  • set diffopt=<TAB> , luego actualice o agregue el context:n .

También debe echar un vistazo a la sección de manual de usuario en diff .


En realidad, si haces Ctrl+WW , no necesitarás agregar ese Ctrl adicional. Hace lo mismo.


configurar vimdiff para ignorar el caso

Habiendo empezado vim diff con

gvim -d main.sql backup.sql &

Encuentro molesto que un archivo tiene palabras clave de MySQL en minúscula y el otro en mayúscula mostrando diferencias en prácticamente todas las demás líneas

:set diffopt+=icase

esto actualiza la pantalla dinámicamente y puede volver a apagarla fácilmente.


ctrl + w, w como se menciona se puede utilizar para navegar de panel a panel.

Ahora puede seleccionar un cambio en particular solo y pegarlo en el otro panel de la siguiente manera. A continuación, presento un ejemplo, como si quisiera cambiar mi parte del código del panel 1 al panel 2 y actualmente mi cursor está en el panel1

  • Use Shift-v para resaltar una línea y use las teclas hacia arriba o hacia abajo para seleccionar el fragmento de código que necesita y continúe desde el paso 3 escrito a continuación para pegar los cambios en el otro panel.

  • Usa el modo visual y luego cámbialo.

    1 clic en ''v'' esto lo llevará al modo visual 2 use la tecla arriba o abajo para seleccionar el código requerido 3 haga clic en, Esc ''tecla de escape 4 Ahora use'' yy ''para copiar o'' dd ''para cortar el cambio 5 do'' ctrl + w, w ''para navegar al panel2 6 haga clic en'' p ''para pegar el cambio donde lo requiera