最近我买了一台用于工作的 Mac 电脑,作为 Tmux 的粉丝,我确实将它与我最喜欢的插件和 .tmux.conf 文件一起安装了,这些插件和文件是我在我的个人 Linux 机器上使用的。
经过一些调整使其可以在 Mac OS 上使用后,唯一仍然不起作用的是我使用“Shift + 箭头”切换窗口的快捷方式在这台 Mac 电脑上不起作用。
我将其放入我的 .tmux.conf 中:
# Set this on Mac OS
set-option -g -w xterm-keys on
# Shift arrow to switch windows
bind -n S-Left previous-window
bind -n S-Right next-window
我猜想 Shift 键正在被其他东西使用。当我这样做时
tmux list-keys | grep "S-"
输出如下:
bind-key -r -T prefix S-Up refresh-client -U 10
bind-key -r -T prefix S-Down refresh-client -D 10
bind-key -r -T prefix S-Left refresh-client -L 10
bind-key -r -T prefix S-Right refresh-client -R 10
bind-key -T root S-Left previous-window
bind-key -T root S-Right next-window
我尝试按如下方式解除绑定:
unbind-key S-Left
unbind-key S-Right
但是“shift+arrow”仍然没有任何作用。
你们知道如何解决这个问题吗?
谢谢!
西兹。
答案1
几年前我使用 OSX 时遇到过同样的问题,但后来解决了。我现在不使用 OSX,因此我根据我记得的内容发布了此解决方案。
我认为,首先您需要Shift+arrow
从终端偏好设置或 OSX 系统偏好设置中禁用键绑定。然后,您需要添加新的键绑定Shift+arrow
(在终端偏好设置中)以映射所需的 byobu 命令。
基于https://github.com/tmux/tmux/blob/master/tty-keys.c,Shift+Up
映射到\033[a
。因此,在终端首选项中,为 添加新的键绑定,Shift+Up
并将命令添加为:Escape Sequence
+ 。对其他键[a
执行相同操作。Shift+arrow
请注意,我是根据我模糊的记忆发布这篇文章的。但解决方案肯定是这样的。尝试一些其他修改,然后让我们知道哪些对你有用。