iOS x Iterm2 및 메타의 +Esc 설정을 사용하여 Alt(meta) + 왼쪽 및 오른쪽 화살표 키에 대해 다음과 같은 사용자 정의 zsh 키 바인딩이 있습니다.
bindkey "^[^[[D" backward-word
bindkey "^[^[[C" forward-word
이를 통해 Alt 화살표가 있는 대부분의 GUI 텍스트 편집기에서와 같이 쉘에서 단어별 점프가 가능합니다.
그러나 이러한 바인딩은 tmux 세션이 시작될 때만 화면에 인쇄됩니다.
DCDCDC
바인딩을 허용하기 위해 tmux에서 zsh를 얻는 방법을 알아보세요.
답변1
Meta이스케이프 문자 표현 요소는 c+ 형식의 조합 에만 적용됩니다.씨인쇄 가능한 문자 또는 제어 문자입니다. 대부분의 터미널은 이스케이프 문자 앞에 이스케이프 문자를 추가하지 않으므로 두 개의 연속 이스케이프 문자를 입력하여 Escape애플리케이션에서 바인딩을 트리거할 수 있으며 이스케이프 시퀀스에는 초기 이스케이프 문자 뒤에 제어 문자가 포함되지 않습니다.
Ctrl키 입력에 대해 터미널에서 보낸 이스케이프 시퀀스를 보려면 +를 누른 다음 쉘 프롬프트 또는 에서 V키 입력을 누르십시오(예: Ctrl+ V, Meta+ ). 쿠킹 모드의 터미널과 쉘 및 Vi와 같은 애플리케이션에서 +는 "제어 문자인 경우에도 다음 문자를 문자 그대로 삽입"을 의미하므로 + 뒤에 이스케이프 시퀀스를 보내는 키 입력이 있으면 해당 이스케이프 시퀀스가 삽입됨(이스케이프 시퀀스에 선행 이스케이프 문자를 제외한 제어 문자가 포함되어 있지 않다고 가정).Leftcat
CtrlVCtrlV
다음과 같은 내용이 표시될 수 있습니다.
^[O1D
Meta+는 Left이스케이프 문자와 그 뒤에 세 개의 문자를 보낸다는 의미입니다 O1D
. 즉, 바인딩해야 함을 의미합니다.
bindkey "^[O1D" backward-word
답변2
tmux set-option -g xterm-keys on
에 추가되거나 tmux.conf
입력될 때마다 .:set-option -g xterm-keys on
답변3
iTerm을 사용하고 있다고 말씀하셨으니 다음 답변을 살펴보세요.
https://stackoverflow.com/a/70451722/4936193
그 당시에는 설정을 가지고 노는 것이 bindkey
나에게 효과가 없었습니다방금 모두 삭제하고 iTerm 설정을 변경했습니다.거기에 설명된 대로 모든 것이 순조롭게 진행되었습니다 :)