我的视力越来越差,而且我的工作要求我使用大量基于终端的程序和基于表格的输出(见下文)。查看单个行并获取所需信息可能非常困难。我正在寻找一种方法,让终端以交替颜色显示背景的每一行 [编辑:](即默认为紫色),以便更好地引导我的眼睛。有没有办法在 Ubuntu 终端中做到这一点,或者其他提供此选项的终端程序?我真的很难找到任何东西
[编辑:]
@kos 对此的回应与 Xspec 兼容:
在~/.bashrc:
alias colorize="perl -pe '
if( \$. %2) {
s/^/\e[38;5;15m/; s/^/\e[48;5;238m/
}
else {
s/^/\e[38;5;0m/; s/^/\e[48;5;249m/
}
s/\$/\e[K/;
s/\$/\e[0m/
'"
用法:
<command> | colorize
但是有一个问题,我看不到我的活动提示符(即“XSPEC12>”)或我在提示符中输入的内容。一旦我按下回车键,它就会显示出来,但我在输入时看不到它
Ubuntu 使用 Gnome 终端,它有一个增加行间距的选项。该选项位于汉堡菜单 > 首选项 > 配置文件 > 文本 > 单元格间距 > 高度中:
将单元格高度间距设置为 1.4 会改变输出:
到此处,您可能会更容易地跟踪这些行:
在相同的设置下,您还可以增加字体大小,这也可能有帮助。
使用背景图像
不幸的是,gnome-terminal不再具有背景图像功能,但 Konsole 仍然具有。对于 Konsole,可以通过在配置文件设置中创建新的配色方案来设置。
创建一个与终端字体间距相同的条纹图像。最简单的方法是截取屏幕截图并在其上绘图:
将其设置为终端背景,一切就会出现条纹:
缺点是,如果缩放终端字体,间距将不会缩放。不过,可以创建具有不同字体设置和相应背景图像的多个配置文件。
尝试这个:
将此文本放入
striped.py
:使其可执行
chmod 755 striped.py
然后使用它,例如
maketable | ./striped.py
...它将每隔一行打印不同的颜色。
要使用
less
此输出,请添加其-R
选项,如 中所示... | less -R
。我试图找到一对既可区分又互相对比的颜色。
尝试示例
更多的
如果你愿意,你可以有编号行;这可以通过添加来实现(以一种奇特的方式)
在之后的行上
c = ...
然后更改插入
+ f'{rvson}{n:>4}:{rvsoff} '
,如...选择
使用暗色文本代替颜色;将
c = ...
行更改为注意:在 Windows/cmd.exe 中不起作用,它只是被忽略。
参考: ANSI 转义代码 - 维基百科
对于 Windows cmd 用户:添加
例如在之后的一行中
import sys
- 这神奇地初始化了(一些)ANSI 转义代码支持。“这就是 Windows 的方式”——总是需要某种特殊的魔法。
编辑2024-06-12:
替代方案:制作条纹背景,使用与上面“相同”的代码。
注意:
*
[48;2;80;80;80m
表示4
背景颜色(3
用于前景),以及
;80;80;80
R、G 和 B - 因为它们在这里相同,所以我们得到灰色调。任何其他 RGB 值也适用,即创建您自己的粉红色颜色版本;
;255;0;255
是“全”粉红色(亮洋红色),请减少 255 以获得不太鲜艳的色调。选择两个略有不同的色调,并将它们作为 a 和 b 放在里面c = [ a, b ]
最后但同样重要的一点
+ '\x1b[2K' +
是,使背景出现在整行上,无论窗口大小、行长或高度如何 - 仅取决于c[n%2]
设置颜色。注意:这些是给程序输出着色的很好的通用解决方案。但它们不能很好地处理交互式 shell,因为每次在交互式 shell 中运行命令时,只有在按下 Enter 键后,提示符和命令才会被绘制到屏幕上。有关交互式 shell 的使用,请参阅@jpa 的解决方案。
以下是两个解决方案,其概念与 Hannu 的解决方案类似(但使用别名和 Perl);
一个将为文本着色,另一个将为文本和背景同时着色;
两者都需要在 中定义别名
~/.bashrc
;对于第一个选项,我选择了白色 (
\e[37m
) 和红色 (\e[31m
),对于第二个选项,我选择了深灰色上的白色 (\e[38;5;15m
/\e[48;5;238m
) 以及浅灰色上的黑色 (\e[38;5;0m
/\e[48;5;249m
),但您应该根据最适合您视力的颜色来选择自己的颜色。第二种选择将需要终端提供更广泛的 ANSI 支持(
gnome-terminal
但在大多数现代终端中它都可以正常工作)。选项 1(更轻松的方法):给文本上色
在
~/.bashrc
:用法:
选项 #2(更重的方法):给文本和背景上色
在
~/.bashrc
:用法:
使用转义码来为输出着色的缺点是输出将被转义码污染;大多数情况下这不会成为问题,因为主要目的显然是运行别名来为终端的输出着色,但值得注意的是,例如,
foo | colorize | tee >file
将导致file
包含转义码。