vi shell 模式的自訂鍵綁定,即「set -o vi」?

vi shell 模式的自訂鍵綁定,即「set -o vi」?

我剛剛發現了 的奇蹟set -o vi,並且很好奇是否可以通過與自定義 vi 或 vim 相同的方式來自定義此 vi shell 模式?

例如,建立自訂鍵綁定以將更方便的鍵或組合鍵對應到esc?

如果目前不支持,那麼更改程式的原始程式碼和在某些自訂中進行硬編碼會有多困難,或者這會是一個壞主意嗎?

答案1

是的,您可以使用內建命令更改鍵映射(對於類似 vi 或 emacs 的模式)bind。這實際上是一個 readline 功能(因此您可以在所有 readline 程式中擁有類似 vi 的綁定,而不僅僅是 bash)。

您要尋找的鍵名為vi-movement-mode,預設為\e(escape)。您也可以將它綁定到(這相當愚蠢)這樣的等於。第二行擺脫了轉義的綁定:

$ bind "=":vi-movement-mode 
$ bind -r "\e"

運行bind -p將顯示您可以綁定的所有鍵及其當前綁定(如果有)。

您可以將bind命令放入您的 中.bashrc,也可以進行編輯~/.inputrc以使其適用於您執行的所有 readline 程式。 readline 文件包含完整的詳細資訊。

相關內容