在终端中交替行颜色

在终端中交替行颜色

是否有任何终端或外壳支持交替行颜色以提高可读性?以表格形式输出数据的命令(例如 apt-cache search)有时有点难以阅读,特别是对于宽终端窗口,如果奇数行的颜色与偶数行的颜色略有不同,则会更容易。

答案1

您可以将要着色的内容的输出通过管道传输到一个小 awk 脚本,它不会对性能造成太大影响。例如:

NR%2 == 0 {
    print "\033[1;36m" $0 "\033[0m"
    next
}

{
    print "\033[1;46;30m" $0 "\033[0m"
}
  1. 将其放入.awk您的某个文件中PATH
  2. 将此行添加到您的.bashrc并重新获取它:

    alias ImFabulous='myfunc';myfunc(){ eval "$@ | awk -f MakeItFabulous.awk";}
    
  3. 尝试:$ ImFabulous <your command here>

例如:ImFabulous cat /etc/hosts。我给出的版本非常基本,但对于大型表格文件来说它应该可以解决问题。你可以通过查找来调整它颜色转义序列适合您的精彩类型。如果您不需要别名,可以输入以下内容:<my command> | awk -f MakeItFabulous.awk

答案2

您可能想要寻找一个支持平铺(即重复,不缩放/拉伸)模式下的背景图像的终端模拟器,并为自己创建这样的背景图像。

主要缺点是,如果您缩放终端,它就不起作用,但如果您经常使用某种最喜欢的字体大小,它可能会很好用。

不要忘记终端的填充。例如,对于基于 VTE 的模拟器(以及许多其他模拟器),字符单元的整个区域周围有 1px 的默认填充。如果你的字体高度是 20px,你应该创建一个 1x40 图片,最上面的像素是 color1,然后是 20 个像素的 color2,然后是另外 19 个像素的 color1。当然,这是假设模拟器将背景图像对齐在顶部。

在基于最新版本 VTE 的终端模拟器中,Terminix [更新:现在称为 Tilix] 和 Xfce4-terminal(版本 0.8.x)支持背景图像,您应该尝试一下它们是否提供这种平铺。如果没有,我很确定他们的作者会愿意实现这一点(只需将他们指向此页面:))。旧版本的 VTE 曾经明确支持背景图像,但由于存在大量其他错误,我不建议使用它。术语和 urxvt 是其他一些可以尝试的可能性。

我曾经使用这种方法在第 80 列有一个永久的右边距。

更新:我实际上已经用 xfce4-terminal 尝试过了,它的工作原理与预期的一样。我没有想到的一个小缺点是,当您向后滚动时,背景不会随着内容一起滚动,这对于 VTE-0.44 的每像素滚动(IMO 否则很酷)尤其令人不安。

相关内容