내 거 .inputrc
:
"\e[A": history-search-backward
"\e[B": history-search-forward
set show-all-if-ambiguous on
set completion-ignore-case on
# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
"\eOc": forward-word
"\eOd": backward-word
"\e[1;5C": forward-word
"\e[1;5D": backward-word
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word
.zprezto/modules/editor/init.zsh
또한 지시어를 정의하는 어떤 것도 건드리지 않았습니다 .bindkey
그러나 버튼을 누르 CtrlLeft거나 CtrlRight터미널(URxvt)이 깜박이면 아무 일도 일어나지 않습니다. 반면에 XTerm에서는 작동합니다. 이것은 URxvt 문제인 것 같습니다.
답변1
파일 ~/.inputrc
은 bash 파일이며 zsh
내가 아는 한 그런 파일은 아닙니다. 제어하는 동작은 다음과 같습니다 readline
.zsh
zle
. 다음 명령을 사용하여 동작을 수정할 수 있습니다bindkey
주문하다.
Ctrl Left따라서 왕복 하려면 Right다음 줄을 귀하의 줄에 추가하십시오 ~/.zshrc
(동등한 더 나은 장소가 있을 수 있지만 ~/.inputrc
나는 그것을 모르고 ~/.zshrc
작동합니다):
bindkey "\eOc" forward-word
bindkey "\eOd" backward-word
bindkey "\e[1;5C" forward-word
bindkey "\e[1;5D" backward-word
bindkey "\e[5C" forward-word
bindkey "\e[5D" backward-word
bindkey "\e\e[C" forward-word
bindkey "\e\e[D" backward-word
답변2
표시된 키 바인딩은 xterm(및 xterm의 동작을 복제하는 프로그램)용입니다. urxvt
예, 하위 항목에 rxvt
사용됩니다.다른키바인딩. 기본적으로 controlleftrxvt/urxvt send 의 경우 escapeOd이를 확인할 수 있습니다.
cat -v
그리고 키 조합을 입력하세요. ^[Od
다른 커서 키에도 동일한 문제가 적용됩니다 .
urxvt
사용할 수 있는 리소스 설정 keysym.sym
(에 소개된 기능의 확장 )을 제공합니다.rxvt
할 수 있다더 밀접하게 일치하도록 이러한 끝점에서 보낸 키를 수정하는 데 사용됩니다 xterm
. 이는 다음과 같은 리소스 설정이 될 것입니다:
URxvt.keysym.Control-0xff51: \033[1;5D
여기서 (맨 페이지에 표시된 대로) Control
는 수정자이고 0xff51
는 왼쪽 커서 키에 대한 코드입니다. 를 사용할 수 있습니다 xev
.
모든 키를 얻으려면 각 키(및 수정자)에 대한 리소스를 추가해야 합니다.
추가 자료: