为什么有些空白区域选中后会变成黄色?

为什么有些空白区域选中后会变成黄色?

比较以下终端截图

截屏 截屏

答案1

这通常发生在输出中存在实际尾随空格、行似乎结束之后(例如,因为程序在带有长度修饰符的%sa 中使用)。printf

其他行在它们看起来结束的地方结束(即没有尾随空格)。

答案2

默认情况下选择会交换受影响单元格的前景色和背景色。 (可以在 GNOME 终端的首选项中配置显式突出显示颜色,或者切换为使用 OSC 17 / 19 转义序列。但现在让我们坚持默认行为。)

如果一个空间在突出显示时变成黄色(橙色、棕色,无论是什么颜色:)),则意味着它的前景色是这样的;由于该字符是空格而不是字母,因此通常不可见。

apt在其输出的底部维护一个临时状态栏(进度消息),用打算保留在屏幕上的消息擦除并覆盖它。您可以注意到该状态栏的文本与突出显示的文本颜色相同。这意味着两件事:apt通过用空格覆盖状态栏的字符来删除它们(而不是,比方说,清除到行尾的序列),并且在从黄色切换回默认颜色之前执行此操作。

您可以提交错误请求,反对apt更改为更“突出显示友好”的方法,尽管我认为它将以极低的优先级处理。更不用说,其他终端模拟器可能会实现不同的突出显示体验。

相关内容