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. */
モード切り替えキーは、バインドされていない唯一のキーです。いくつかの追加キーがバインドされます(M-$
変数名の完成などのbash関連の完成のために)。