将 tmux 前缀绑定到 OS X cmd 键(或任何其他绑定)

rub*_*eca 23 keyboard tmux macos

我习惯于在 OS X 上使用 iTerm2(或 Terminal.app)。但我想转而使用 tmux(或屏幕,但问题与这两个应用程序相似)。

所以我的想法是有一个单独的 iTerm 选项卡,其中 tmux 会话用多个选项卡打开。要进行转换,我需要在 tmux 上配置一个基本功能:使用 cmd + n 切换选项卡“n”(如 Firefox、Chrome、iTerm2 本身等)

但是我找不到在 mac 键盘上映射 cmd 键的方法。我首先尝试将 cmd 实现为前缀键,但没有成功。我试过设置

set-option -g prefix M-a (hoping for Meta-a)

set-option -g prefix ^a (hoping for ^ to work)

但没有任何效果。这可能吗?我真的不需要将前缀绑定到 cmd,但我希望能够使用 cmd+n 更改 tmux 选项卡。

谢谢

小智 23

在 iTerm2 中,您可以将快捷方式映射到发送到终端的十六进制代码。转到 iTerm2 首选项 -> 键。在全局快捷键中,单击 + 并添加类型您想要的快捷键,例如 cmd+1,它将被捕获。然后选择“发送十六进制代码”。在出现的框中,键入要发送到 tmux 的十六进制代码,以空格分隔。Ctrl-B 是 0x02,所以对于“Ctrl-B 1”,输入“0x02 0x31”。有关更多十六进制代码,请参见此处:http : //www.nthelp.com/ascii.htm

我使用 h,j,k,l 映射 Cmd 以在 tmux 窗格之间移动,并使用 % 和 " 映射 Cmd 以创建拆分。我可能会做一些类似于使用一个控制键在 vim 拆分之间移动的操作。

  • 对于那些使用 iTerm2 的人来说,这绝对是最好的答案。谢谢! (2认同)

Dan*_*eck 9

您想要调用一系列击键(首先是Ctrl-b,然后是范围从 0 到 9 的n)。

最好的办法是使用键盘快捷键实用程序(例如ButlerKeyboard Maestro)为您执行此操作。


使用巴特勒

选择+»Smart Item»Keystrokes,配置热键 Cmd-1。按Ctrl-B,然后1击键。将其配置为仅在终端(或 iTerm)中有效。它会警告您其他应用程序可能不喜欢它,但您已经知道了。


使用键盘大师

在左侧创建一个仅在终端(或 iTerm)中可用的新组。

添加一个由热键触发器( Cmd-1)触发的新项目,并为其操作添加两个击键Ctrl-B1


您可能还想看看这个主题——虽然不使用,Command但使用终端对我不起作用。


tmux 文档

将键键绑定到命令。对于 ctrl 键,键可以以 'C-' 或 'ˆ' 为前缀,对于 alt(元)键可以以 'M-' 为前缀。?r 标志表示该键可以重复,请参阅重复时间选项。

它们不支持第三个修饰键。