재부팅 후 일부 zsh 키 바인딩(예: CTRL-A 및 CTRL-E)이 작동하지 않고 대신 ^A
및 ^E
.
다른 키 바인딩(예: CTRL-U)은 잘 작동합니다. bash를 시작할 수 있고 키 바인딩이 제대로 작동하기 때문에 이것이 내 터미널(urxvt)이 아니라 zsh 문제라고 확신합니다. 터미널을 자주 닫았다가 다시 열어서 구성을 다시 로드하기 때문에 내 .zshrc가 문제인 것 같습니다.
재부팅하기 전에 마지막으로 한 일은 커널을 컴파일하는 것이었습니다. 실행되지 않아서 알려진 작동 커널로 되돌렸습니다. 사용자 공간에서 어떤 일이 일어나기 전에 커널이 로드되지 않기 때문에 손상된 커널이 그것과 관련이 있는지 의심됩니다.
관련 bindkey
출력
"^A"-"^C" self-insert
...
"^E"-"^F" self-insert
...
"^U" vi-kill-line
...
답변1
라인 편집기가 해당 vi
모드를 사용하도록 구성된 것 같습니다. 예상하고 있는 것 같습니다 emacs
.
에서 zsh
매뉴얼을 인용하면 다음과 같습니다.
쉘이 시작될 때 VISUAL 또는 EDITOR 환경 변수 중 하나에 문자열 "vi"가 포함되어 있으면 "viins"가 되고, 그렇지 않으면 "emacs"가 됩니다. 바인딩키에 대한 -e 및 -v 옵션은 이 기본 선택을 무시하는 편리한 방법을 제공합니다.
그럼 여기에 추가하세요
bindkey -e
~/.zshrc
선호하는 편집기 emacs
가 vi
// vim
/ elvis
... 이더라도vimacs