我希望能够映射 emacs 键(例如C-v
/ M-v
)以在 tmux 中滚动,而不是默认的PgUp
/ PgDown
,这可能吗?目前在手册中找不到(如果手册上有的话,请见谅,考虑到 tmux 使用的其他类似 emacs 的导航键绑定,这似乎是很自然的事情)
答案1
默认情况下,键绑定表已将 Cv、Page Down( )和 Spaceemacs-copy
全部绑定到,以及将 Mv 和 Page Up()绑定到。NPage
page-down
PPage
page-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-keys
vi
vi
您可以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
)。