^[[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은 이스케이프 시퀀스를 보냅니다. modifyOtherKeys
tmux
. 차단: 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~