進一步閱讀

進一步閱讀

我是該產品的熱衷用戶魚殼我非常喜歡它。

不過有一個問題:

在頁面上https://fishshell.com/docs/2.1/index.html有一段標題為“命令列編輯器”。它列出了許多有用的快捷方式。

我最感興趣的是ctrl-L。根據描述:「Ctrl-L 清除並重新繪製螢幕」。我嘗試了一下,效果如我所願。然而它會產生一些添加到前一個提示中的跡象。向後滾動時可以看到這一點。

例子:

rosika@... ~/Schreibtisch> [3;J
rosika@... ~/Schreibtisch>

[3;J就是我要問的。這[確實是某種矩形,裡面有(我猜)4 位數字。

誰能告訴我為什麼會出現這種現象?這是關於什麼的?

預先非常感謝。

問候

羅西卡

我的系統:

Linux/Lubuntu 16.04.4 LTS,64 位元

魚 v.2.2.0-3

答案1

unix 終端透過解釋混合在單一流中的控制序列和文字來填充內容。許多字元既可以是文本,也可以是控制代碼,這取決於上下文它們的含義。

<esc>[3;J就是這樣的序列之一。在錯誤的上下文中它會被列印,在正確的上下文中它是重置顯示的一部分。

有關詳細信息,請參閱termcapconsole_codes和手冊頁。tput

答案2

TERM您的終端模擬器與環境變數的值不符。最常見的錯誤是認為不是 XTerm 的內容將與名為xtermxterm-new的termcap/terminfo 記錄相符xterm-256color

您的 terminfo 記錄指定了相對較新的E3功能(目前為linuxputtyputty-256colorxterm-basicxterm-newxtermxterm-256color和一些其他終端類型指定),該功能告訴程式有一個回滾緩衝區需要清除以及如何清除它。但您的終端模擬器實際上並不支援該控制序列,而是列印您所看到的回應內容。 Fish shell 正在執行該clear命令,該命令現在利用了 terminfo 增強。

環境變數值中給出的名稱TERM必須與正確描述終端模擬器操作的 termcap/terminfo 記錄的名稱相符。

進一步閱讀

相關內容