bash에서 vi-editing-mode의 모든 기본 바인딩 키를 활성화하는 방법은 무엇입니까?

bash에서 vi-editing-mode의 모든 기본 바인딩 키를 활성화하는 방법은 무엇입니까?

Bash에서 vi-editing-mode를 사용하고 있습니다. 에 따르면 man readlinevi-editing-mode에서 작동하는 몇 가지 기본 바인딩 키가 있습니다. 일부 키는 제대로 작동하지만 일부 다른 기본 키는 작동하지 않습니다.

예를 들어, 다음과 같이 man readline말합니다.

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

하지만 bind -p내 리눅스 상자에는 'emacs-editing-mode'가 어떤 키에도 바인딩되어 있지 않다고 나와 있습니다.

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

이게 정상적인 상황인가요? bash에서 vi-editing-mode의 모든 기본 바인딩 키를 활성화하는 방법은 무엇입니까? .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 관련 완성용).

관련 정보