two tool files vim wrapping vimdiff

tool - ¿Obligando a Vimdiff a envolver líneas?



vim diff tool (5)

Al diferenciar 2 archivos en VIM, prefiero que las líneas se ajusten. Sin embargo, vimdiff desactiva el ajuste por defecto.

¿Hay una manera de establecer el ajuste de línea automáticamente para cada dif?


Cuando vim ya está iniciado, los comandos para iniciar un diff y una envoltura son, en cada uno de los archivos de ventana dividida:

:diffthis :set wrap

Sin embargo, el diff + wrap se muestra incorrectamente:

Si tiene una línea larga en un archivo y una línea corta o faltante en la otra, entonces la línea larga ocupará, digamos, 2 líneas en el primer lado, por la línea corta o faltante solo ocupará 1 línea en el segundo lado.

Esto resulta en un cambio vertical de los 2 archivos . Claro, los colores ayudan a compensar visualmente este cambio. Pero a lo largo de varias líneas de diferencias, el cambio puede ser más alto que la altura de la ventana, haciendo que las diferencias sean ilegibles.

Así que la pregunta no está completamente resuelta ... Por favor avise.


Puedes ejecutar esto

vimdiff -c ''set wrap'' -c ''wincmd w'' -c ''set wrap'' file1 file2


Puedes poner lo siguiente en tu vimrc.

au VimEnter * if &diff | execute ''windo set wrap'' | endif


Tuve que resolver esta pregunta para una demostración en la que quería que vimdiff solo cuando se lanzaba desde un determinado terminal.

Finalmente recurrí al crudo:

alias vimdiff=''vimdiff +"windo set wrap"'' vimdiff file.orig file


Yo uso lo siguiente:

autocmd FilterWritePre * if &diff | setlocal wrap< | endif

FilterWritePre se activa inmediatamente antes de escribir un diff generado en el búfer y setlocal wrap< copia el valor global de wrap . Por supuesto, también es posible forzar simplemente el setlocal wrap .