"set-window-option -g mode-keys vi" 不适用于 .tmux.conf

"set-window-option -g mode-keys vi" doesn't work in .tmux.conf

我已经能够通过按 C-a :(我已经更改了默认前缀)然后键入 set-window-option mode-keys vi 来成功打开 tmux 中的 vi 模式。但是,我不能通过添加到 ~/.tmux.conf 来让它坚持下去。这是我的配置:

# Change default prefix key to C-a
unbind-key C-b
set -g prefix 'C-a'
bind-key 'C-a' send-prefix

# Configure Vim mode for navigating text and selection
set-window-option -g mode-keys vi
bind-key -t vi-copy 'v' begin-selection
bind-key -t vi-copy 'y' copy-selection

# Allow navigating panes with vi-like commands.
bind k selectp -U
bind j selectp -D
bind h selectp -L
bind l selectp -R

值得注意的是,使用 kjhl 键导航窗格也不起作用。可能这是因为 tmux 未能在脚本的前面执行 set-window-option。这里有什么问题?

尝试使用 setw -g mode-keys vi

"set-window-option -g mode-keys vi" 适用于 tmux 2.1 及更高版本。

"setw -g mode-keys vi" 适用于 tmux 1.8

注意

bind-key -t vi-copy 'v' begin-selection
bind-key -t vi-copy 'y' copy-selection

从 tmux 2.4 开始将不再有效。对于相同的功能(使用 xclip 进行复制),请改用

bind-key -T copy-mode-vi 'v' send -X begin-selection
bind-key -T copy-mode-vi 'y' send -X copy-pipe-and-cancel "xclip -in -selection clipboard"

来自 this blog post