tmux绑定分号

时间:2012-09-30 22:47:22

标签: bind tmux

我有什么办法可以约束; (\ 059)到tmux中的命令?

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

我已经尝试将以下内容放在我的.tmux.conf中,但似乎都没有:

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

  2. “bind; select-pane -R” - > tmux报告“usage:bind-key ...”

  3. “bind”;' select-pane -R“ - > tmux报告“usage:bind-key ...”

  4. 我现在正在使用第一个选项,但我想要正确使用,所以每次启动tmux时都没有出现警告。

2 个答案:

答案 0 :(得分:2)

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

bind-key \; select-pane -R

答案 1 :(得分:1)

tmux 引用有点古怪;它看起来非常像Bourne shell风格的引用,但它有微妙的差异。

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

bind \; select-pane -R

手册页的相关部分:

  

字面分号可以        通过使用反斜杠转义它(例如,指定时)        命令序列到bind-key)。

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

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

您的\059尝试(您的示例编号为1)同样无法调整绑定,因为在指定键时不支持八进制语法。 前缀 ; 的默认绑定是last-pane,最终可能会向右移动窗格(即select-pane -R做什么),但仅限于如果右侧的下一个窗格恰好是以前活动的窗格。