Bash
Readline:將 ANSI 轉義序列綁定到鍵
我想用 bash / readline 綁定一個鍵,以清除控制台螢幕的底部。
清除螢幕底部的 ANSI 序列是
\e[J
,所以我嘗試在我的 中添加以下行.inputrc
,但它不起作用,它只是忽略了三個字元:Control-N: "\e[J"
如果我在字元串中添加一些測試字元:
Control-N: "BEFORE \e[J AFTER"
,然後插入字元串
BEFORE
並停在那裡。目前,我找到了這個解決方法,但它顯然顯示了一行
echo
命令,我不想要它:Control-N: "echo -ne \"\\e[J\"\n"
是否可以發送帶有
readline
綁定的 ANSI 序列?
兩部分:
- bash 允許您將鍵綁定到 readline clear-screen功能(這似乎是最初的目標)。
- 在 bash 中,readline 的目的是準備文本(通過編輯等)以向bash發出命令。轉義序列將被發送到終端。列出的 readline 函式都不能替代
echo
orprintf
。readline 的鍵綁定需要一個函式名或文字字元串。在您的範例中, readline 讀取了它認為可能的函式名稱,並忽略了該行的其餘部分。
所以:不,bash/readline 沒有提供將轉義序列直接作為鍵綁定回顯的有用功能。如前所述,您必須使用
echo
.