我注意到konsole
在滚动的下一页上重置颜色时出现问题,如下面的屏幕截图所示,使用命令运行for i in {1..100}; do echo "$i"; echo -en '\033[1;42m AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA \033[0m'; echo -e 'next text'; done;
:
如您所见,忽略\033[0m
从第 11 行开始,即当前窗口视图的下一页。
gnome-terminal
没有这样的问题,但我是konsole
用户并正在寻找解决方案。
[更新]
答案1
如果你改变
\033[0m
到
\033[0m\033[K
这将达到你的目的。不同之处在于,当终端向上滚动时,它将用当前背景颜色填充新行:
- 这
\E[K
清除从当前位置到行尾的当前行(撤消通过滚动完成的颜色填充)。 - 颜色行为是一个特征Linux控制台,在其他终端(rxvt、xterm、konsole)中实现。
也可以看看:
答案2
我使用 bash 循环结构看到了类似的问题for $file in \'ls\'
。我的ls
别名是ls -h --color=auto
.消除锯齿ls
解决了这个问题,所以显然一些颜色代码被存储在$file
.