체계:
- 우분투 20.04
- Linux 5.13.0-39-범용
- 멀티플렉서 3.0a
질문:
- tmux를 사용할 때 호스트에서 설정한 직접 연결된 SSH 세션에서 더 이상 위쪽 화살표를 사용할 수 없으며 원격 호스트에서 인식되지 않습니다. tmux 외부에서 ssh 세션을 설정하면 이 문제가 발생하지 않습니다. 또한 다른 호스트로 SSH를 연결한 다음 위쪽 화살표를 사용하려는 호스트로 연결하면 문제가 발생하지 않습니다.
- 위쪽 화살표는 SSH 세션이 아닌 tmux를 사용할 때 작동합니다. 그러나 더 이상 tmux-action-combo+를 사용하여
Ctrl+up
세션 크기를 조정할 수 없습니다 . tmux-action-combo에서는 이런 일이 발생하지 않으며Alt+up
예상대로 화면 크기가 조정됩니다.
참고: 다른 모든 화살표 키와 tmux-action-combo 버튼은 문제 없이 잘 작동합니다.
나는 이것이 이전 버전의 tmux에서 가져온 키 바인딩을 처리해야 한다는 느낌을 받았습니다.
구성:
이것이 내가 사용하고 있는 구성이다.tmux.conf
set-environment -g TMUX_PLUGIN_MANAGER_PATH '~/.tmux/plugins/'
# This session is allow Mobaxterm sessions to scroll without having to hold SHIFT after reattaching
#set -g terminal-overrides 'xterm*:smcup@:rmcup@'
# Set default TERM type
set -g default-terminal "screen-256color"
set-option -ga terminal-overrides ",*256col*:Tc"
# Enable mouse control
set -g mouse on
unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix
#set -g status off
set-option -g status-position top
set -sg escape-time 0
set -g focus-events on
# enable vim bindings for copy mode
set-window-option -g mode-keys vi
# copy to system clipboard
bind -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "xclip -i -f -selection primary | xclip -i -selection clipboard"
bind -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -i -f -selection primary | xclip -i -selection clipboard"
bind -T copy-mode-vi C-j send-keys -X copy-pipe-and-cancel "xclip -i -f -selection primary | xclip -i -selection clipboard"
bind-key -n C-h select-pane -L
bind-key -n C-j select-pane -D
bind-key -n C-k select-pane -U
bind-key -n C-l select-pane -R
#Copy and paste from terminal (non-vim)
bind-key -T copy-mode C-w send-keys -X copy-pipe-and-cancel "xclip -i -selection clipboard > /dev/null 2>&1"
bind-key -T copy-mode MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -i -selection clipboard > /dev/null 2>&1"
bind-key -T copy-mode M-w send-keys -X copy-pipe-and-cancel "xclip -i -selection clipboard > /dev/null 2>&1"
bind-key -T copy-mode-vi C-j send-keys -X copy-pipe-and-cancel "xclip -i -selection clipboard > /dev/null 2>&1"
bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "xclip -i -selection clipboard > /dev/null 2>&1"
bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xclip -i -selection clipboard > /dev/null 2>&1"
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -i -selection clipboard > /dev/null 2>&1"
bind p paste-buffer
bind-key -T copy-mode-vi v send-keys -X begin-selection
bind-key -T copy-mode-vi y send-keys -X copy-selection
bind-key -T copy-mode-vi r send-keys -X rectangle-toggle
unbind '"'
unbind %
bind n split-window -v -c '#{pane_current_path}'
bind m split-window -h -c '#{pane_current_path}'
bind c new-window -c '#{pane_current_path}'
bind r command-prompt "respawn-pane -k" \
#tmux sync all screens in windows
bind -n C-y setw synchronize-panes
###########
# Plugins #
###########
#Install Plugins
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
#Plugin: tmux-resurrect
set -g @resurrect-processes ':all:'
set -g @resurrect-strategy-vim 'session'
set -g @resurrect-capture-pane-contents 'on'
#Plugin: tmux-continuum
set -g @continuum-save-interval '15'
set -g @continuum-restore 'on'
set -g status-right 'Continuum status: #{continuum_status}'
#Initalize TMUX plugin manager
run '~/.tmux/plugins/tpm/tpm'
?
tmux-action-combo+에 나타나는 내용은 다음과 같습니다 .
bind-key -T copy-mode Up send-keys -X cursor-up
bind-key -T copy-mode M-Up send-keys -X halfpage-up
bind-key -T copy-mode C-Up send-keys -X scroll-up
내가 여기서 무엇을 놓치고 있는 걸까요? tmux를 Up
ssh 세션 내에서 사용하거나 tmux-action-combo +를 사용하여 창 크기를 조정하는 것을 허용하지 않는 이유는 무엇입니까 Up
?
답변1
알아냈어요.
위에서 정의한 두 가지 문제는 재정의될 필요가 있습니다. 실제 문제는 다음과 같습니다.
- SSH 세션에 있는 동안향나무호스트 님, 위쪽 화살표 키가 더 이상 인식되지 않습니다.
- Ctrl+Up 키 조합이 인식되지 않습니다.
문제 1에 대한 해결책:
이유:Juniper 호스트는 $TERM
tmux 창에서 사용할 올바른 값을 인식하지 못하며 위쪽 또는 아래쪽 화살표 키를 지원하지 않습니다.
해결책:xterm-256color
용어 설정을 모두 제거하고 용어를 (Ubuntu 인스턴스의 기본값) 로 설정했습니다 . 이로 인해 문제가 해결되었습니다.
# Set default TERM type
set -g default-terminal "xterm-256color"
# set -g default-terminal "screen-256color"
# set-option -ga terminal-overrides ",*256col*:Tc"
문제 2에 대한 해결책:
이유:Ubuntu 상자에서 직접 tmux를 사용할 때는 이 문제가 발생하지 않습니다. 이 문제는 PC에서 VNC할 때 발생합니다. 문제를 좀 더 해결한 후에 VNC 클라이언트를 사용하고 있는 호스트의 다른 응용 프로그램으로 인해 문제가 발생했다는 사실을 발견했습니다. 이는 "Ctrl+Up" 키 조합을 방해하고 있었습니다. 즉, 키 조합이 전송된 VNC 세션을 통과하지 못했음을 의미합니다.
해결책: 애플리케이션에서 간섭하는 키 조합을 제거한 후 "Ctrl+Up" 키 조합이 VNC 클라이언트를 통해 올바르게 전송되고 tmux에서 다시 작동합니다.