Tmux는 컨트롤 탭 시퀀스를 먹습니다.

Tmux는 컨트롤 탭 시퀀스를 먹습니다.

^[[27;5;9~탭을 전환하기 위해 vim에서 ctrl-tab (즉)을 할당했습니다. 직접적으로 작동 하지만, 시퀀스 xterm를 실행할 때만 tmux시퀀스가 ​​가끔 작동합니다 . tmux시퀀스가 캡처되고 전달되지 않기 때문인 것 같습니다 .

이것은 버그입니까, 아니면 잘못 사용하고 있습니까? 내 구성:

unbind C-b
set-option -g prefix C-a
bind-key a send-prefix

bind-key C-a last-window

set -g base-index 1
set -s escape-time 0

set -g status-bg red
set -g status-right '#(date)'
setw -g window-status-current-attr underscore

setw -g mode-mouse off
setw -g mode-keys vi
bind-key -t vi-copy 'v' begin-selection
bind-key -t vi-copy 'y' copy-selection
bind y run-shell -b "tmux save-buffer - | xclip -i -selection clipboard"

# Experimental below
set -g terminal-overrides 'xterm:colors=256'

답변1

tmux는 입력을 터미널 설명에 정의된 키와 일치시키려고 하기 때문에 tmux에서 "가끔"만 작동합니다.

  • 일련의 바이트를 읽고
  • "외부" 터미널 설명의 키와 일치하는지 확인하고
  • 그렇다면 매장저것열쇠, 그리고
  • 나중에 "내부" 터미널에 설명된 동등한 바이트 시퀀스를 내부에서 실행 중인 프로그램으로 보냅니다.tmux

vim이 xterm의 리소스를 전환하기 위해 제어 시퀀스를 보내는 경우 ^[[27;5;9~xterm은 이스케이프 시퀀스를 보냅니다. modifyOtherKeystmux. 차단: xterm에 도달하지 않습니다(테스트 프로그램으로 확인됨).보내다제어 순서).

이것이 "가끔" 작동하는 것을 본다면, 아마도 속도를 늦추고 tmux가 이스케이프 시퀀스를 인식하지 못하게 하는 일부 타이밍 문제 때문일 것입니다.

답변2

+ 및 ++ 를 tmux항상 통과하지 못하는 컴퓨터가 있는데 , 동일한 버전과 구성을 가진 다른 컴퓨터가 있어도 이런 일이 발생하지 않습니다.CtrlTabCtrlShiftTabtmux

아직 이유를 파악하지 못했지만 저에게 도움이 된 솔루션은 tmux이러한 시퀀스를 실행 중인 항목에 명시적으로 전달하도록 구성하는 것이었습니다.

# Pass on Ctrl+Tab and Ctrl+Shift+Tab
bind-key -n C-Tab send-keys Escape [27\;5\;9~
bind-key -n C-S-Tab send-keys Escape [27\;6\;9~

관련 정보