Tmux 滚动模式:vim 键绑定?

Tmux scroll mode: vim keybindings?

因此,如果我在 Tmux 中并且一堆输出到达终端,我可以通过按以下键滚动浏览它:

ctrl-b [

现在,我必须举起双手,然后转到箭头键才能向上滚动。

如何在滚动模式下映射 vim 键?

2020 年更新:我认为任何人都不应该使用低于 2 的任何版本的 tmux,因此现代 tmux 的简洁配置只是

set-window-option -g mode-keys vi
bind-key -T copy-mode-vi v send -X begin-selection
bind-key -T copy-mode-vi V send -X select-line
bind-key -T copy-mode-vi y send -X copy-pipe-and-cancel 'xclip -in -selection clipboard'

上一个回答

不确定你有哪个 tmux。这适用于 1.8 和 2.6,这是我被迫使用的两个。

run-shell "tmux setenv -g TMUX_VERSION $(tmux -V | cut -c 6-)"
if-shell -b '[ "$(echo "$TMUX_VERSION < 2.4" | bc)" = 1 ]' \
  "setw -g mode-keys vi; \
  bind-key Escape copy-mode; \
  bind-key -t vi-copy v begin-selection; \
  bind-key -t vi-copy V select-line; \
  bind-key -t vi-copy y copy-pipe 'xclip -in -selection clipboard'"

if-shell -b '[ "$(echo "$TMUX_VERSION >= 2.4" | bc)" = 1 ]' \
  "set-window-option -g mode-keys vi; \
  bind-key -T copy-mode-vi v send -X begin-selection; \
  bind-key -T copy-mode-vi V send -X select-line; \
  bind-key -T copy-mode-vi y send -X copy-pipe-and-cancel 'xclip -in -selection clipboard'"

此处与 hjkl 相关的部分只是 setw -g mode-keys vi 用于 1.8 和 set-window-option -g mode-keys vi 用于 2.6(这些甚至可能是别名并且在两个版本中都有效,不确定)。也就是说,vVxclip 的映射绝对有用。

为了补充已接受的答案,我发现以下 .tmux.conf 行完成了我需要的大部分内容:

set-window-option -g mode-keys vi
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R