Bash

Readline:將 ANSI 轉義序列綁定到鍵

  • February 3, 2017

我想用 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 函式都不能替代echoor printf

readline 的鍵綁定需要一個函式名或文字字元串。在您的範例中, readline 讀取了它認為可能的函式名稱,並忽略了該行的其餘部分。

所以:不,bash/readline 沒有提供將轉義序列直接作為鍵綁定回顯的有用功能。如前所述,您必須使用echo.

引用自:https://unix.stackexchange.com/questions/249548