일반 터미널에서는 F1- F4키가 를 생성 ^[[11~^[[12~^[[13~^[[14~
하지만 tmux에서는 ^[OP^[OQ^[OR^[OS
. 나는 그들이 tmux에서 동일하게 동작하기를 원하므로 tmux의 프로그램 바인딩에 대해 걱정할 필요가 없습니다. PuTTY가 없습니다.엑스텀 R6옵션이 열립니다.
다른 키 불일치를 피하기 위해 tmux에서 putty와 터미널 유형을 사용하고 있지만 putty-256color
여전히 화살표 키를 다시 매핑해야 합니다.
구성예예전에는 :
set -g default-terminal "putty-256color"
set -g terminal-overrides "putty*:smkx@:rmkx@:kLFT5=\eOD:kRIT5=\eOC:kUP5=\eOA:kDN5=\eOB:kf1=\e[11~:kf2=\e[12~:kf3=\e[13~:kf4=\e[14~"
내 구성의 나머지 부분은 관련이없는 화장품입니다. 4개의 기능 키를 원래 상태로 다시 매핑하려고 시도했지만 아직 성공하지 못한 것을 볼 수 있습니다.
내 키가 동일하게 유지되지 않는 이유에 대한 기본적인 내용이 누락된 것 같습니다.모든tmux 내부 및 외부 키(제외)접두사그러면 이런 문제는 발생하지 않을까요?
편집하다
내 문제는 여전히 존재하지만 나는예전에는기본적인 내용 누락: default-terminal
터미널 유형 참조이내에tmux는 terminal-overrides
내가 연결하는 용어의 유형을 나타냅니다.외부tmux. (네, 제가 바보가 된 것 같아요.)
이제 내 구성은 다음과 같습니다.
set -g default-terminal "screen-256color"
set -g terminal-overrides "putty*:kLFT5=\eOD:kRIT5=\eOC:kUP5=\eOA:kDN5=\eOB:kf1=\e[11~:kf2=\e[12~:kf3=\e[13~:kf4=\e[14~:smkx@:rmkx@"
F1- 여전히 외부 및 내부 tmux를 F4제공합니다 .^[[11~^[[12~^[[13~^[[14~
^[OP^[OQ^[OR^[OS
답변1
매뉴얼 페이지는 불분명하지만 소스 코드를 읽는 것이 도움이 됩니다.
- 보세요key.c를 입력하세요.을 클릭하면 표에 나열된 키가 표시됩니다.
- 테이블이 동일한 파일에서 사용됩니다.
input_key
- 상단 근처파일에 다음과 같은 메모가 있습니다.
/* * 이 파일의 이름은 약간 오해의 소지가 있습니다. 포함된 코드는 다음과 같습니다. * 키 코드는 다음으로 전송하기에 적합한 콘텐츠로 번역됩니다. * 애플리케이션은 창에서 실행됩니다(input.c가 다른 창에서 수행하는 것과 유사). * 방향 및 출력). */
귀하의 쉘은 주석에서 참조되는 애플리케이션입니다.
터미널 설명과 일치하지 않는 구성(외부 "실제" 터미널)을 사용할 수 있도록 terminal-overrides
터미널 설명 읽기를 수정 하는 데 사용됩니다 .tmux
- 터미널 설명은 다음에서 읽습니다.tty_term_find,
- 그런 다음 적용하여 재정의하십시오.tty_term_override
tmux
키를 고유한 이스케이프 시퀀스 세트로 변환합니다( 의 이스케이프 시퀀스와 일치 screen
하지만 옵션이 추가됨 xterm-keys
). 이것상단에 댓글window.c
다음과 같이 요약됩니다.
* A pane has two buffers attached, these are filled and emptied by the main
* server poll loop. Output data is received from pty's in screen format,
* translated and returned as a series of escape sequences and strings via
* input_parse (in input.c). Input data is received as key codes and written
* directly via input_key.
이것매뉴얼 페이지설명하다
default-terminal
단말기
이 세션에서 생성된 새 창에 대한 기본 터미널 설정 - 기본값TERM
환경 변수.tmux
이것이 올바르게 작동 하려면~ 해야 하다로 설정'화면','티먹스'또는 그 파생상품.
제한의 이유는 input-keys.c
원하는 방식으로 데이터를 사용자 정의할 수 없기 때문입니다.
답변2
기능키의 키코드는 단말기에서 정의한 키코드와 일치해야 합니다.
내 말은 F1 기능 키가 ^[[11~를 생성하는 경우 터미널 정의에 kf1=\E[11~이 있어야 한다는 것입니다(예: TERM=dtterm).
F1 기능 키가 ^[OP를 생성하는 경우 터미널 정의에는 kf1=\EOP(예: TERM=vt220)가 있어야 합니다.
다음 명령을 사용하여 터미널의 키 할당을 확인할 수 있습니다.정보 CMP주문하다.