ZSH에서 새 키 바인딩을 설정하면 기본 키 바인딩이 삭제됩니다.

ZSH에서 새 키 바인딩을 설정하면 기본 키 바인딩이 삭제됩니다.

내 끝에 다음 코드를 추가했습니다 .zshrc.

export VISUAL=vim
autoload edit-command-line; zle -N edit-command-line
bindkey -M vicmd v edit-command-line

셸을 다시 시작하면 제대로 작동하지만 이전의 모든 키 바인딩이 작동을 멈춥니다.

기록을 검색할 수 없습니다(CTRL-R) 그리고 나는 움직일 수 없어요 (CTRL-A/E) 예를 들어.

어쩌면 내가 이 명령을 잘못된 위치에 넣은 것은 아닐까?

어떤 도움이라도 대단히 감사하겠습니다!

답변1

zsh는 VISUAL포함된 문자열로 설정할 때 Vi를 사용합니다.vi키맵( vicmd, viins, ...)에는 Vi 스타일의 기본 키 바인딩이 있습니다. 그렇지 않으면 zsh는 emacsEmacs 스타일 기본 키 바인딩과 함께 키맵을 사용합니다.

쉘에서 Emacs 스타일의 명령줄 편집을 원하지만 Vim을 즐겨 사용하는 편집기로 사용하려면 다음을 추가하세요.bindkey -e당신을 위한 .zshrc.

Vi 스타일 명령줄 편집을 사용하고 싶지만 Emacs 스타일 기본값의 일부 바인딩을 사용하려면 해당 바인딩을 직접 정의해야 합니다. ^REmacs 모드에서 실행history-incremental-search-backwardVi 모드에서는 바인딩되지 않습니다. Vi 명령 모드에서 검색을 위한 기본 키 바인딩은 /다음과 같습니다.vi-history-search-backward그리고?vi-history-search-forward. 명령줄의 시작이나 끝으로 이동하려면 평소와 같이 0, 및 를 사용할 수 있습니다 ^.$

관련 정보