私は Bash で vi-editing-mode を使用しています。によると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)
これは正常な状況ですか? 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 固有の補完用)。