Make diff Use el ancho total del terminal en el modo de lado a lado

Pregunta:

La mayoría de las aplicaciones son inteligentes al utilizar todo el ancho del terminal disponible. Mi shell lo hace, screen, vim, etc. Sin embargo, diff en modo side-by-side ( -y ), no. Esto me enfurece. Utiliza 126 caracteres de ancho, que ni siquiera es la mitad de mi terminal de 270 bloques de ancho.

Mirar a través de la página de manual no revela nada en particular sobre el ajuste automático del ancho, solo especificándolo manualmente a través de -W .

¿Existe quizás una "característica oculta" de diff que le permita expandirse automáticamente a todo el ancho de la terminal? O; ¿Cuál es la ruta más fácil para insertar automáticamente -W <terminalsize> en mi comando diff cada vez que lo ejecuto?

Supongo que agregar automáticamente -W a todo no podría dañar nada, porque solo significará "usar $ x columnas", que es siempre lo que quiero, ya sea que esté en modo lado a lado, o de otro modo.

Respuesta:

$ alias diff='diff -W $(( $(tput cols) - 2 ))'

debería hacerlo. También querrá agregarlo a ~ / .bashrc.

El - 2 es principalmente paranoia, en caso de que algo (¿Unicode de doble ancho incrustado?) Se expanda lo suficiente como para hacer que la línea se ajuste; si quieres, puedes usar

$ alias diff='diff -W $(tput cols)'

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım