6

有什么方法可以绑定;(\059) 到 tmux 中的命令?

默认情况下,它绑定到最后一个窗格;但是,我想将其重新绑定到 select-pane -R。

我曾尝试将以下内容放入我的 .tmux.conf 中,但似乎没有任何效果:

  1. “bind \059 select-pane -R” -> tmux 报告“unkown key \059”,但忽略警告后,“;” 有时确实按预期工作。

  2. “绑定;选择窗格 -R”-> tmux 报告“用法:绑定键 ...”

  3. “绑定';' 选择窗格-R”-> tmux 报告“用法:绑定键...”

我现在使用第一个选项,但我想正确执行,所以每次启动 tmux 时都不会出现警告。

4

2 回答 2

5

分号在 tmux 中也用作命令分隔符,所以为了绑定它,你需要对其进行转义:

bind-key \; select-pane -R
于 2012-10-01T07:19:39.687 回答
2

tmux引用有点古怪;它看起来很像 Bourne shell 风格的引用,但有细微的差别。

唯一可以逃避尾随(或单独)分号的是反斜杠:

bind \; select-pane -R

手册页的相关部分:

可以通过使用反斜杠对其进行转义来包含文字分号(例如,在将命令序列指定为 bind-key 时)。

尾随的未转义分号充当tmux命令之间的分隔符。

tmux向您展示了bind-key用法(对于您的示例编号为 2 和 3),因为当分号未转义时(即使它被引用,与 shell 不同),该行被解析为两个命令:bindselect-pane -R. 这些命令中的第一个是不完整的(bind-key至少需要两个参数:一个键和一个命令)。

您的\059尝试(您的示例编号为 1)同样未能调整绑定,因为指定键时不支持八进制语法。Prefix ;is的默认绑定last-pane,它可能最终将窗格向右移动(即做什么select-pane -R),但前提是右侧的下一个窗格恰好是先前活动的窗格。

于 2012-10-01T07:20:25.807 回答