예를 들어, 올바른 키 조합을 눌러 viins
터미널에 들어가고 나갈 때 잊어버린 경우, 내가 언제 돌아왔는지 어떻게 알 수 있나요? 기본 모드가 무엇인지 어떻게 알 수 있나요? 가이드는 이렇게 말합니다.
잘못된 모드에 있는 경우 ~/.zshrc의 "bindkey -e"를 사용하면 emacs 모드로 전환되고 "bindkey -v"를 사용하면 vi 모드로 전환됩니다.
근데 뭐예모델? 입력하기 전에 알고 싶습니다. 내가 아는 한 $KEYMAP 특수 변수만 사용할 수 있습니다.이내에man zshzle
zle 위젯을 사용 중인데 zshell 사용자 가이드에서 현재 모드를 결정하는 방법에 대한 정보를 찾을 수 없습니다 .
어떤 도움이나 통찰력이라도 대단히 감사하겠습니다.
답변1
요약: a를 수행 bindkey -lL main
하면 단어 앞에 키맵 이름이 표시됩니다 main
.
내가 읽은 것 중에서문서"현재" 키맵은 name 으로 표시되는 것 같습니다 main
. 이는 일반적 으로 viins
또는 emacs
키맵의 별칭입니다.
더 멀리아래에그것은 다음과 같이 말합니다:
-l
(소문자 "L")모든 기존 키맵 이름을 나열합니다. 인수가 제공되면 해당 키맵만 나열됩니다.
이 옵션도 사용하는 경우
-L
키맵을 생성하거나 연결하기 위한 바인딩 키 명령으로 나열됩니다. 'bindkey -lL main
'는 ' '(있는 경우)에 연결된 키맵main
과 표준 emacs 또는 vi 에뮬레이션이 적용되는지 여부를 보여줍니다. 이 옵션은.safe
이 방법으로 생성할 수 없기 때문에 키맵을 표시하지 않습니다 . 그러나 " "bindkey -lL .safe
도 오류로 보고되지 않고 아무 것도 출력하지 않습니다.
따라서 a를 수행하면 (일반적인 상황에서) 키맵 중 하나(pass ) 가 "현재" 키맵의 별칭임을 bindkey -lL
확인할 수 있습니다 .bindkey -A
main
키맵이 존재하지 않으면 키맵에 들어가게 main
되는데 , 이는 매우 불편하지만 문제를 해결할 수 있을 만큼 충분히 기능적입니다. .safe
이런 일이 발생하면 bindkey -d
키맵을 재설정해야 합니다.