Как включить все назначенные по умолчанию клавиши vi-editing-mode в bash?

Как включить все назначенные по умолчанию клавиши vi-editing-mode в bash?

Я использую vi-editing-mode на Bash. Согласно man readline, есть несколько клавиш привязки по умолчанию, работающих на vi-editing-mode. Некоторые клавиши работают хорошо, но некоторые другие клавиши по умолчанию не работают.

Например, 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)

Это нормальная ситуация? Как включить все клавиши привязки по умолчанию vi-editing-mode на bash? Нужно ли мне вручную привязывать клавиши на .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-$для завершения имен переменных).

Связанный контент