即使未绑定,Tmux 也会将 2 个不同的键映射为同一个键

即使未绑定,Tmux 也会将 2 个不同的键映射为同一个键

previous-window我刚刚将Tmux 中的命令的键绑定配置为Ctrl-[.当我这样做时,我注意到我的Escape行为与命令相同Ctrl-[。换句话说,Escape当我按下该键时,该键也开始更改为上一个窗口。这是非常有问题的,因为例如,当我在 vim 中编辑时,我无法进入正常模式,因为 Tmux 试图更改为前一个窗口。

我已经尝试通过将unbind-key -a(我也在底部包含我的配置文件)放在我的 Tmux 配置文件的顶部来解除所有以前的 Tmux 键绑定。我也尝试过单独解绑Escape密钥,但也没有成功。之后我尝试交换线路bind-key -n C-[ previous-windowbind-key -n Escape previous-window检查相反的情况是否成立。毫不奇怪,即使退出键必然会更改为上一个窗口,按下Ctrl-[它仍然有效。最后我检查了系统设置中的键盘布局是否正确,也没有问题...请注意,source-file ~/.tmux.conf在更改配置文件中的任何内容后,我总是重新启动 Tmux。

此时,我唯一的猜测是 Tmux 将Ctrl-[相同的组合视为Escape密钥,我觉得这非常令人困惑。如果是这样的话,我不知道如何或去哪里解决它。

这是我的 .tmux.conf 文件(其中大部分可能是不必要的,但无论如何我都将其包含在内):

unbind-key -a

## Use default gnome terminal PS1
set-option -g default-command bash
# remap prefix from 'C-b' to 'C-a'
unbind Escape
unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix

# split panes using | and -
bind -n C-\\ split-window -h
bind -n C-_ split-window -v
unbind '"'
unbind %

# Create new window with ctrl+w and unbind previous commands 
bind-key -n C-n new-window
bind-key -n C-] next-window
bind-key -n C-[ previous-window
unbind &
unbind c
# unbind C-p

# Resize panes using alt and vim commands
bind -n M-h resize-pane -L 5
bind -n M-j resize-pane -D 5
bind -n M-k resize-pane -U 5
bind -n M-l resize-pane -R 5

# Unbind previous pane resize commands
unbind C-Left
unbind C-Right
unbind C-Up
unbind C-Down

# Reload tmux configuration with prefix (Ctrl+A) and r
bind-key r source-file ~/.tmux.conf \; display-message "~/.tmux.conf reloaded"

# switch panes using Alt-arrow without prefix
bind -n C-h select-pane -L
bind -n C-l select-pane -R
bind -n C-k select-pane -U
bind -n C-j select-pane -D

# Keys for ending sessions and windows etc.
bind -n C-w kill-window
bind -n C-q kill-server
# bind -n C-e kill-pane

# Enable mouse mode (tmux 2.1 and above)
set -g mouse on
setw -g monitor-activity on
# don't rename windows automatically
set-option -g allow-rename off

# PLUGIN MANAGER

# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'

# Theme plugin
set -g @plugin 'jimeh/tmux-themepack'

# Theme to use
set -g @themepack 'powerline/default/blue'

# Enable tmux vi mode
# setw -g mode-keys vi

# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run -b '~/.tmux/plugins/tpm/tpm'

我非常感谢所有的帮助,并提前感谢大家。

相关内容