Terminal
清除到行尾在螢幕中使用錯誤的背景顏色
在 ZSH 提示擴展中,命令 %E 應該是“清除到行尾”。
這行得通。我們在一直穿過的灰色條中看到它。
知道這是什麼原因,以及如何解決?
當您發送 ECMA-48 擦除控制序列之一時,擦除是使用目前背景顏色還是預設背景顏色因終端類型而異。(在 terminfo 數據庫中,有一個功能允許程序確定他們正在與之交談的終端將做什麼。它被命名為
bce
。與 termcap 等效的名稱是ut
。)您正在設置目前的背景顏色,然後擦除到行尾,期望擦除始終使用目前顏色。
screen
本身就是一個終端仿真器。但與大多數硬體終端不同,它在這方面的行為是可切換的。預設情況下,背景顏色擦除是關閉的,並且控制序列會導致使用預設顏色進行擦除。bce
使用命令打開它。一個使用命令bce
在所有新螢幕中設置預設設置。defbce
(我說的最多,因為最新型號的 DEC VT 提供 DEC 私有模式 117 來切換行為。這些終端的預設設置是“新的”PC 兼容行為,即用目前顏色擦除,關閉私有模式 117 將恢復到使用預設顏色擦除的“舊”VT 兼容行為。DEC VT 52x 終端可以像 一樣切換
screen
,除了主機可以進行切換並且預設是“新”行為,與screen
預設相反。這些終端實際上比screen
, 更新了幾年。)所以打開它。就這麼簡單。
進一步閱讀
- “字元處理”, 螢幕使用者手冊。GNU 項目。
- “DECECM”。VT520/VT525 影片終端程式器資訊。EK-VT520-RM。1994 年 7 月。
- https://unix.stackexchange.com/a/252078/5132