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 관련 완성을 위해 ).