Bash에서 vi-editing-mode를 사용하고 있습니다. 에 따르면 man readline
vi-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 관련 완성용).