使 diff 在并排模式下使用完整终端宽度

使 diff 在并排模式下使用完整终端宽度

大多数应用程序都会聪明地使用可用终端的整个宽度。我的 shell、screen、vim 等可以。但是,diff在并排模式 ( -y) 下则不能。这让我很生气。它使用 126 个字符宽度,这甚至不是我的 270 块宽度终端的一半。

浏览手册页并没有发现任何有关自动调整宽度的特殊信息,只能通过手动指定它-W

是否有一个“隐藏功能”diff可以让它自动扩展到终端的整个宽度?或者;-W <terminalsize>每当我运行 diff 命令时,自动插入到 diff 命令中的最简单路径是什么?

我假设自动将 -W 附加到所有内容不会造成任何伤害,因为它只意味着“使用 $x 列”,这始终是我想要的,无论我处于并排模式,或其他方式。

答案1

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

应该这样做。您还需要将其添加到 ~/.bashrc 中。

主要- 2是偏执,以防某些东西(嵌入的双角 Unicode?)扩展得足以使换行;如果你愿意,你可以使用

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

相关内容