在 tmux 中复制模式下绑定滚动页面的键

在 tmux 中复制模式下绑定滚动页面的键

我希望能够映射 emacs 键(例如C-v/ M-v)以在 tmux 中滚动,而不是默认的PgUp/ PgDown,这可能吗?目前在手册中找不到(如果手册上有的话,请见谅,考虑到 tmux 使用的其他类似 emacs 的导航键绑定,这似乎是很自然的事情)

答案1

默认情况下,键绑定表已将 Cv、Page Down( )和 Spaceemacs-copy全部绑定到,以及将 Mv 和 Page Up()绑定到。NPagepage-downPPagepage-up

您可以使用 检查您的绑定tmux list-keys -t emacs-copy | grep -i page

如果缺少这些绑定,您可以手动重新建立它们(例如在您的中~/.tmux.conf):

bind-key -t emacs-copy C-v page-down
bind-key -t emacs-copy M-v page-up

但由于这些是默认设置,您需要追踪它们被更改/删除的位置,然后才知道将上述命令放在哪里才能使它们生效(它们需要在修改绑定的其他内容之后进行)。

你确定你的mode-keys选项设置为了emacs吗?它默认为emacs,但是tmux如果您设置了 VISUAL 环境变量并且它的值包含† 或者如果您没有设置 VISUAL 但设置了 EDITOR 并且它的值包含 ,则会将其设置为vi(以及)。status-keysvivi

您可以mode-keys使用 检查全局值tmux show-options -g -w | grep mode-keys。您还可以有一个每个窗口的mode-keys值(省略-g检查其值;-t如果您无法在窗口本身中运行命令,您可以使用 来定位另一个窗口)。

如果您想要覆盖“自动检测”并始终使用emacs绑定表,那么您可以将这些行放入~/.tmux.conf

set-option -g status-keys emacs
set-option -gw mode-keys emacs

“包含vi”测试实际上更像是“vi出现在最后一个值之后/(或如果/值中没有出现,则出现在任何地方)”。这意味着像这样的值/opt/vital/bin/emacs将不算作vi(尽管vi包含vital)。

相关内容