有没有办法重新定义 tmux 复制模式的导航键?

有没有办法重新定义 tmux 复制模式的导航键?

当处于 tmux 复制模式时,我想使用一些 Alt+组合键而不是箭头来移动光标。有没有办法让 tmux 做到这一点?

以下是我想要的定义:

Alt+i: up
Alt+l: right
Alt+j: left
Alt+k: down
Alt+o: forward word
Alt+u: backward word

我不想将 tmux 切换到 vi 模式。

答案1

结果您必须编辑emacs-copy表的键绑定。以下是我如何进行上述所需的更改。

首先,我通过在 tmux 中输入以下命令(按 Prefix+冒号)来检查当前的绑定是什么list-keys -t emacs-copy。这给了我一个绑定键的列表emacs-复制模式,我查看了它们以找出哪些命令执行了我想要的操作。

然后,我将适当的键绑定添加到我的 ~/.tmux.conf 文件中,如下所示:

bind-key -t emacs-copy M-j cursor-left
bind-key -t emacs-copy M-i cursor-up
bind-key -t emacs-copy M-l cursor-right
bind-key -t emacs-copy M-k cursor-down
bind-key -t emacs-copy M-u previous-word
bind-key -t emacs-copy M-o next-word

最后,我在 tmux 内运行 tmux 命令source ~/.tmux.conf来绑定按键,而无需退出并重新加载会话。

答案2

这(显然)在最近的 tmux 版本中发生了变化:在 中2.9a,似乎没有emacs-copy键表(但有一个copy-mode),并且bind-key键表的参数是(仅)-T(注意大写)。例如,在复制/模式下按 Ctrl-左/右跳转单词:

bind-key -T copy-mode C-Left send-key -X previous-word                                                                  
bind-key -T copy-mode C-Right send-key -X next-word   

相关内容