我剛剛發現了 的奇蹟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 文件包含完整的詳細資訊。