tmux 위쪽 화살표가 제대로 작동하지 않습니다.

tmux 위쪽 화살표가 제대로 작동하지 않습니다.

체계:

  • 우분투 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를 Upssh 세션 내에서 사용하거나 tmux-action-combo +를 사용하여 창 크기를 조정하는 것을 허용하지 않는 이유는 무엇입니까 Up?

답변1

알아냈어요.

위에서 정의한 두 가지 문제는 재정의될 필요가 있습니다. 실제 문제는 다음과 같습니다.

  1. SSH 세션에 있는 동안향나무호스트 님, 위쪽 화살표 키가 더 이상 인식되지 않습니다.
  2. Ctrl+Up 키 조합이 인식되지 않습니다.

문제 1에 대한 해결책:

이유:Juniper 호스트는 $TERMtmux 창에서 사용할 올바른 값을 인식하지 못하며 위쪽 또는 아래쪽 화살표 키를 지원하지 않습니다.

해결책: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에서 다시 작동합니다.

관련 정보