进一步阅读

进一步阅读

在 ZSH 提示符扩展中,命令 %E 应该是“清除到行尾”。

这有效。我们在灰色条中看到它一直延伸。

在此输入图像描述

但是,如果我调用“screen”,%E 就会停止工作: 在此输入图像描述

知道这是什么原因以及如何解决吗?

答案1

当您发送 ECMA-48 擦除控制序列之一时,擦除是否使用当前的背景颜色或默认不同终端类型的背景颜色有所不同。 (在 terminfo 数据库中,有一项功能允许程序确定它们正在对话的终端将执行的操作。它的名称为bce。termcap 的等效名称为ut。)您正在设置当前的背景颜色,然后擦除到队伍的尽头,期待擦除到总是使用当前颜色。

screen本身就是一个终端模拟器。但与大多数硬件终端不同的是,它在这方面的行为是可以切换的。默认情况下,背景颜色擦除关闭,并且控制序列导致使用默认颜色进行擦除。用户可以使用命令将其打开bce。我们bce可以使用该命令在所有新屏幕中设置默认设置defbce

(我说的是大多数,因为最新型号的 DEC VT 提供了用于切换行为的 DEC 专用模式 117。这些终端的默认设置是使用当前颜色进行擦除的“新”PC 兼容行为,并且关闭专用模式 117 会恢复回来与使用默认颜色进行擦除的“旧”VT 兼容行为类似,DEC VT 52x 终端可进行切换screen,但主机可以进行切换,并且默认为“新”行为,与screen这些默认行为相反。终端实际上​​比 更新了好screen几年。)

所以打开它。就这么简单。

进一步阅读

相关内容