퍼티에서 GNU 화면 제어 키 조합을 활성화하는 방법은 무엇입니까?

퍼티에서 GNU 화면 제어 키 조합을 활성화하는 방법은 무엇입니까?

ssh를 사용하여 Linux 상자에 액세스하고 있습니다 putty.

달리고 있지 않을 때는 키 조합이 제대로 작동합니다 screen. 그러나 세션에서는 Ctrl 키 조합이 작동하지 않습니다 screen. 사실 a- Ctrlany key조합이 없는 동일한 키 등록과 같습니다 Ctrl.

Ctrl내 터미널로 전송된 문자를 찾기 위해 조합을 입력한 V다음 입력하여 Ctrl이를 알 수 있습니다 .key

예를 들어 Ctrl- (왼쪽 화살표)를 입력하면 ^[[D( screenscreen256 색상 용어)가 표시됩니다. 나에게 같은 결과를 주었다.

이상하게도 Altkey조합은 훌륭하게 작동합니다.

특히 "앞으로 단어" 및 "뒤로 단어" 키 바인딩을 screen.

다양한 터미널을 사용할 수 있도록 수정해 보았습니다 .inputrc. 그래서 내 .inputrc모습은 다음과 같습니다.

$if term=xterm
    'xxx' : forward-word # xxx key gotten from Ctrl-V
    'xxx' : backward-word
$endif
$if term=screen-256color
...
...

TERMbash또한 프로필 설정 TERM과 키보드 터미널 매핑을 설정하여 .screenrc다양한 터미널을 사용해 보았습니다 Putty. 명백한 linuxxterm는 작동하지 않습니다. 그러나 분명한 이유로 나는 설정의 모든 순열을 시도하지 않았습니다.

추가 정보:

수정했는데 방향키 조합이 유일하게 작동하지 않더군요. 배포 버전은 RHEL 6입니다.

.screenrc:

term xterm # tried other terms as well
shell -$SHELL # login shell to reload configs
caption string "%w"
hardstatus alwayslastline "%{b kw}%H %{r}%1` %{w}| %{g}%c %{w}| %{y}%d.%m.%Y %{w}| %{g}%l %{w}| %{-b kw}%u %-Lw%{= rW}%50> %n%f %t %{-}%+Lw%<"
vbell off
defscrollback 5000

Putty의 기본 키보드 모드 ESC [n~.

퍼티 매뉴얼에서: "기본 모드에서 ESC [n~으로 표시된 기능 키는 ESC [11~, ESC [12~, etc.")와 같은 시퀀스를 생성합니다."). 이는 디지털 터미널의 일반적인 동작과 일치합니다. "

흥미로운 점은 실제로 전송되는 내용입니다 Putty(첫 번째 답변에 따라).https://superuser.com/questions/342848/cant-get-keyboard-to-work-Corrightly-in-putty), 예

^[0D : left-arrow
^[[D : Ctrl-{left-arrow}

서로 다르기 때문에 putty문제가 되지 않는 것 같은데요?

FWIW, Putty에서 응용 프로그램 커서 키 모드 설정을 변경해 보았지만 소용이 없었습니다. 나도 그것을 사용해 보았고 tmux같은 문제에 직면했습니다.

답변1

기본 구성에서 PuTTY는 커서 키를 다음으로 보냅니다.정상예를 들어 ^[OA화면에서 커서 키를 다음으로 설정할 때 모드입니다.애플리케이션모드(예: ^[[A.

이는 키보드를 열기 위해 화면에 이스케이프 시퀀스를 전송함으로써 수행 됩니다(termcap ks, terminfo 에서). smkx숫자 키패드와 커서 키가 둘 다 기능에 존재하므로 해당 키에 대한 응용 프로그램 모드를 열 때 발생합니다 ks/smkx. 터미널이 있는 경우 터미널을 초기화할 때 이 화면 기능을 사용하십시오. screen은 또한 termcap 함수( CS설정된 경우) 에 문자열을 전송하여 후속 조치를 취하는데 , 이는 원래 디자인이 키보드만 초기화된 터미널 설명을 사용하는 것이었음을 암시합니다 ks/smkx.

키 바인딩은 커서 키에서 보낸 문자열을 예상하기 때문에 이러한 차이점을 알 수 있습니다.정상모델. 커서 키를 변경하는 부분을 생략하도록 화면의 터미널 설명을 수정하는 경우 이러한 바인딩을 계속 사용할 수 있습니다.

예를 들어 다음과 같이 할 수 있습니다.

infocmp screen >foo
vi foo

할당을 변경합니다.

smkx=\E[?1h\E=,

도착하다

smkx=\E=,

그 다음에

tic foo

수정된 설명을 컴파일합니다. (루트가 아닌) 사용자로 이 작업을 수행하면 tic은 컴파일된 설명을 ~/.terminfo디렉터리에 넣습니다. 이 접근 방식에는 단점이 있으며 tput키 바인딩 정보를 얻는 데 가장 적합합니다. 하지만 간단합니다.

추가 자료:

답변2

나는 이것을 찾았다또 다른 문제현상금을 게시 한 후 ...

* 퍼티에서는 Ctrl과 화살표 키가 작동하지 않습니다! 나는 무엇을 해야 합니까?

putty는 ctrl에서 커서 키 모드의 의미를 반전시킵니다. 이는 tmux가 올바르게 감지하기가 약간 어렵습니다. Ctrl 키를 올바르게 사용하려면 kUP5(Ctrl-Up 등)가 조정된 버전이 되도록 terminfo 설정을 변경하고, tmux가 모드를 변경하지 않도록 smkx/rmkx를 비활성화합니다. 예를 들어, .tmux.conf에서 다음 줄을 사용합니다(TERM을 xterm으로 설정했다고 가정).

-g 터미널 재정의 설정 "xterm*:kLFT5=\eOD:kRIT5=\eOC:kUP5=\eOA:kDN5=\eOB:smkx@:rmkx@"

이는 tmux 1.2 이상에서만 작동합니다.

https://stuff.mit.edu/afs/athena/project/bsd/src/tmux-1.3/FAQ

관련 정보