저는 iTerm2
Mac에서 control+ ←와 control+를 사용하여 눌렀을 때 →16진수를 전송하도록 사용자 정의했습니다. 이렇게 하면 명령을 입력하거나 편집할 때 커서가 줄의 시작과 끝(한 번에 한 단어 대신)으로 이동합니다. - 그리고 이 키 게다가 화살표는 커서를 한 번에 한 단어씩 이동합니다.0x01
0x05
alt
이것은 스크린 세션을 시작할 때까지 SSH를 사용할 때 원격 Linux 시스템에서 잘 작동합니다. +는 여전히 잘 작동하지만 +를 사용하려고 하면 control상태 영역에 다음과 같은 메시지가 나타납니다.→control←screen
No other window.
문서에서는 다음 창과 이전 창에 다음 줄을 추가 /etc/screenrc
하거나 키를 바인딩하는 것이 좋습니다.~/.screenrc
bindkey "^[[5D" prev
bindkey "^[[5C" next
바인딩을 해제하는 구문은 명령 없이 다음 줄을 사용하는 것입니다.
bindkey "^[[5D"
bindkey "^[[5C"
또한 다음을 시도했습니다.
bindkey "^[[01"
bindkey "^[[05"
이 중 어느 것도 작동하지 않는 것 같습니다.
/etc/screenrc
완전히 변경되지 않았으며 Ubuntu 16.04
현재 ~/.screenrc
문서가 없습니다(즉, 비표준 간섭 없음).
중단 위치를 알아내기 위해 바인딩을 해제하거나 추가로 디버깅하려면 어떻게 해야 합니까?
답변1
코드는 0x01
화면의 기본 명령 문자인 Control-A이므로 control+를 ←두 번 수행하면 기본 작업 바인딩이 표시됩니다.다른, 즉 다른 창이므로 메시지가 표시됩니다.
화면을 시작할 때 Control-b와 같은 다른 명령 문자로 변경할 수 있습니다.
screen -e^Bb
아니면 ~/.screenrc
라인을 입력할 수도 있습니다
escape ^Bb
답변2
^A 문자를 보내도록 Ctrl+를 설정했습니다 (Ctrl+A). Left이는 Ctrl+ 에서 보낸 것과 동일한 문자입니다 A. ^A는 화면 키 바인딩의 기본 접두사 문자입니다.
bindkey "^[[5D" prev
화면 구성의 내용은 두 가지 이유로 쓸모가 없습니다. 첫째, Screen이 이 이스케이프 시퀀스를 수신하면 어떤 일이 발생하는지 정의합니다.접두사 문자 뒤, 즉 ^A 다음입니다. 둘째, ^[[5D
일부 터미널은 Ctrl+ content 를 전송 Left하지만 다른 콘텐츠(^A)를 전송하도록 터미널을 재구성했습니다.
Ctrl+ Left^A를 보내는 대신 ^[[1~
또는 ^[OH
( ^[
이스케이프 문자는 어디에 있습니까)를 보내십시오. 마찬가지로 ^E 대신 Ctrl+ Right보내기 ^[4~
또는 만들기를 수행합니다. ^[OF
이는 일반적 Home으로 및 키에 의해 End전송되는 이스케이프 시퀀스 입니다.