答案1
这通常发生在输出中存在实际尾随空格、行似乎结束之后(例如,因为程序在带有长度修饰符的%s
a 中使用)。printf
其他行在它们看起来结束的地方结束(即没有尾随空格)。
答案2
默认情况下选择会交换受影响单元格的前景色和背景色。 (可以在 GNOME 终端的首选项中配置显式突出显示颜色,或者切换为使用 OSC 17 / 19 转义序列。但现在让我们坚持默认行为。)
如果一个空间在突出显示时变成黄色(橙色、棕色,无论是什么颜色:)),则意味着它的前景色是这样的;由于该字符是空格而不是字母,因此通常不可见。
apt
在其输出的底部维护一个临时状态栏(进度消息),用打算保留在屏幕上的消息擦除并覆盖它。您可以注意到该状态栏的文本与突出显示的文本颜色相同。这意味着两件事:apt
通过用空格覆盖状态栏的字符来删除它们(而不是,比方说,清除到行尾的序列),并且在从黄色切换回默认颜色之前执行此操作。
您可以提交错误请求,反对apt
更改为更“突出显示友好”的方法,尽管我认为它将以极低的优先级处理。更不用说,其他终端模拟器可能会实现不同的突出显示体验。