zsh에서 vim을 편집기로 내보내면 키보드 단축키가 비활성화되는 이유는 무엇입니까?

zsh에서 vim을 편집기로 내보내면 키보드 단축키가 비활성화되는 이유는 무엇입니까?

.zshrc모습은 다음과 같습니다.

export EDITOR="/usr/bin/vim"

이제 터미널을 열고 키보드 단축키(예: ctrla줄 시작 부분으로 이동)를 입력하면 작동하지 않습니다. 대신 문자열 ^A(또는 입력한 바로가기에 따라 다른 문자열)이 터미널에 입력됩니다.

emlai:~ % ^A

exportmy에서 단어를 제거하면 .zshrc키보드 단축키가 작동합니다.

EDITOR="/usr/bin/vim"

EDITOR다른 콘텐츠로 내보내면 vim다음과 같은 키보드 단축키도 작동할 수 있습니다.

export EDITOR="/usr/bin/nano"

왜 이런 일이 발생합니까?

이것도 테스트했는데 bash키보드 단축키가 모든 경우에 잘 작동했습니다.

답변1

zshvi대부분의 최신 셸과 마찬가지로 명령줄 편집을 위해 두 가지 키맵(하나 와 emacs하나) 중에서 선택할 수 있습니다 . 일부 셸(예: tcshor readline- like 기반 셸 bash)에서는 이 emacs셸이 기본값이며 예상한 셸일 수 있습니다.

을 사용하면 해당 모드를 선호한다고 가정할 때 /// 사용자 가 아닌 경우 또는 포함하는 경우 ( if 및 if ... ) 가 아닌 경우 기본적으로 모드를 zsh가져옵니다 .emacs$EDITOR$VISUALvivinvivimelvisvimacs$EDITOR/home/victor/bin/emacszshvi

값에 관계없이 특정 모드를 강제하려면 $EDITORtcsh-style을 추가하세요:

bindkey -e # for emacs
bindkey -v # for vi

또는 ksh 스타일:

set -o emacs
set -o vi

당신을 ~/.zshrc위해 .보세요

info -f zsh -n Keymaps

더 알아보기.

관련 정보