web-dev-qa-db-fra.com

FAIRE DIFF Utilisez la largeur complète du terminal en mode côte à côte

La plupart des applications sont intelligentes sur l'utilisation de la largeur complète du terminal disponible pour eux. Mon shell fait, écran, vim, etc. Cependant, diff en mode côte à côte (-y), ne fait pas. Cela me dérange. Il utilise une largeur de 126 caractères, ce qui n'est même pas la moitié de ma borne de largeur de 270 blocs.

En regardant via la page de l'homme ne révèle rien de particulier sur l'ajustement automatique de la largeur, spécifiant manuellement la spécification manuelle via -W.

Y a-t-il peut-être une "fonctionnalité cachée" de diff pour lui permettre de s'étendre automatiquement à la largeur complète du terminal? Ou; Quel est le chemin le plus facile à insérer automatiquement -W <terminalsize> Dans ma commande DIFF chaque fois que je l'exécute?

Je suis sous l'hypothèse qui ajoute automatiquement -w à tout ce qui ne pouvait rien blesser, car il ne signifie jamais que "utiliser des colonnes $ x", qui est toujours ce que je veux, que je sois en mode côte à côte, ou autrement.

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

devrait le faire. Vous voudrez également l'ajouter à ~/.CASHRC.

Les - 2 est principalement la paranoïa, dans le cas où quelque chose (une double largeur intégrée Unicode?) Délimine suffisamment pour faire du wrap de la ligne; Si vous voulez, vous pouvez simplement utiliser

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