
다양한 방법이 존재합니다ZSH에서 VI 키 바인딩을 사용할 때 삽입 상태인지 일반 상태인지 표시합니다.
그놈 터미널도캐럿을 변경할 수 있습니다에 대한 호출을 통해 블록에서 █
ibeam으로 .|
gconftool-2
삽입 모드에 ibeam이 있고 일반 모드에 블록이 있도록 이 두 가지를 어떻게 결합할 수 있나요?
답변1
질문에 제공된 두 답변 모두 넣기[1,2] 함께, 나는 이것으로 끝납니다:
function zle-line-init zle-keymap-select {
if [[ $KEYMAP == vicmd ]]; then
gconftool-2 --type string --set /apps/gnome-terminal/profiles/Default/cursor_shape block
elif [[ $KEYMAP == (main|viins) ]]; then
gconftool-2 --type string --set /apps/gnome-terminal/profiles/Default/cursor_shape ibeam
fi
}
zle -N zle-line-init
zle -N zle-keymap-select
차이점은 프롬프트를 수정하는 대신 $KEYMAP
절로 직접 매개변수를 확인 if..fi
하고 명령을 실행한다는 점이다.gconftool-2
답변2
최신 버전의 gnome-terminal에서는 다음 이스케이프 시퀀스를 사용하여 커서를 변경할 수 있습니다.
\e[0 q
또는\e[ q
: 프로필 설정에 정의된 대로 재설정합니다.\e[1 q
: 깜박이는 블록\e[2 q
: 꾸준한 블록\e[3 q
: 밑줄 깜박임\e[4 q
: 꾸준한 밑줄\e[5 q
: I빔 깜박임\e[6 q
: 꾸준한 I빔
예를 들어 이를 인쇄할 수 있습니다 echo -ne '\e[5 q'
. mpy의 답변에 표시된 대로 이를 zsh 구성에 연결하세요.