如何在bash上開啟vi編輯模式的所有預設綁定鍵?

如何在bash上開啟vi編輯模式的所有預設綁定鍵?

我在 Bash 上使用 vi 編輯模式。根據man readline,有幾個預設綁定鍵可在 vi 編輯模式下工作。有些鍵工作正常,但其他一些預設鍵不起作用。

例如,man readline說,

VI Command Mode functions
...
         "C-E"  emacs-editing-mode
...

bind -p在我的 Linux 機器上,顯示「emacs-editing-mode」未綁定在任何按鍵上。

$ bind -p | grep emacs-editing
# emacs-editing-mode (not bound)

這是正常情況嗎?如何在bash上開啟vi編輯模式的所有預設綁定鍵?我必須在 .inputrc 上手動綁定按鍵嗎?

答案1

Bash 修改了一些預設的 readline 綁定,包括這個。程式碼位於initialize_readline函數於bashline.c

/* In Bash, the user can switch editing modes with "set -o [vi emacs]",
   so it is not necessary to allow C-M-j for context switching.  Turn
   off this occasionally confusing behaviour. */

模式切換鍵是唯一未綁定的鍵。綁定了一些附加鍵(例如,用於特定於 bash 的完成,例如M-$完成變數名稱)。

相關內容