当处于 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