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


23

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

export EDITOR="/usr/bin/vim"

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

emlai:~ % ^A

export내 단어 를 제거하면 .zshrc키보드 단축키가 올바르게 작동합니다.

EDITOR="/usr/bin/vim"

키보드 단축키를 작동시키는 EDITOR것 이외의 다른 것으로 내보내는 것 vim, 예 :

export EDITOR="/usr/bin/nano"

왜 이런 일이 발생합니까?

나는 이것을 또한 테스트 bash했으며 키보드 단축키는 모든 경우에 올바르게 작동합니다.

답변:


27

zsh대부분의 현대 쉘은 명령 줄 편집을위한 두 가지 키보드 매핑 ( vi하나와 하나) 중에서 선택할 수 emacs있습니다. 일부 셸 (예 : tcsh또는 ) readline과 같은 기반 쉘에서는 기본값이며 아마도 예상 한 것입니다.bashemacs

으로 zsh, 당신이 얻을 emacs기본적으로 모드를 제외 $EDITOR또는 $VISUAL포함 vi(당신이 있다면 vi/ nvi/ vim/ elvis사용자 (도 불구 vimacs하고 경우 $EDITOR입니다 ...), 당신이 선호하는 가정 모드)./home/victor/bin/emacszshvi

의 값에 관계없이 특정 모드를 강제 실행하려면 다음을 $EDITOR추가하십시오.

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

또는 더 휴대하기 쉬운 제품 :

set -o emacs
set -o vi

당신에게 ~/.zshrc. 만나다

info -f zsh -n Keymaps

자세한 내용은.


흥미 롭군 bindkey이상 사용할 이유가 set -o있습니까?
제니스

@zenith, 아마 아닐 것입니다. bindkeytcsh 방식과 원래 방식입니다. 요즘 그들은 동등해야합니다.
Stéphane Chazelas
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.