tmux 向上箭头无法正常工作

tmux 向上箭头无法正常工作

系统:

  • ubuntu 20.04
  • Linux 5.13.0-39-通用
  • 多路复用器3.0a

问题:

  • 使用 tmux 时,我从主机建立的任何直接连接的 ssh 会话,我无法再使用向上箭头,它在远程主机上无法识别。如果我在 tmux 之外建立 ssh 会话,则不会发生此问题。另外,如果我 ssh 到另一台主机,然后再到我想使用向上箭头的主机,则不会发生此问题。
  • 使用 tmux 时,而不是在 ssh 会话中,向上箭头有效。但是,我无法再使用 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

弄清楚了。

我上面定义的两个问题需要重新定义。实际问题如下:

  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 上运行。

相关内容