问题描述
(对不起,英语不好) 我的目标:根据“变量”执行不同的命令,但是要使用一个键绑定。
我想用S(大写s)取消/激活窗格同步,因为小号s用于显示不同的会话,但是我真的不知道该怎么写。 (我当然可以重新绑定,但是在我的脑海中烙印了Session的那一点点)
我想也许是这样的:
bind S "if (snychronize-panes=on)"; then "setw synchronize-panes off": else "setw synchronize-panes on"
我尝试用变量替换“ synchronize-panes”,但我不知道如何在tmux.conf中编写正确的if子句。
解决方法
这应该可以使用内置变量pane_synchronized
和 if-then-else 的格式版本:#{?expression,value-if-true,value-if-false}
:
bind-key S set-window-option -F synchronize-panes #{?pane_synchronized,off,on}
就像尼古拉斯·万豪(Nicholas Marriott)在评论中说的那样,如果没有为开/关选项提供任何值,它将简单地切换,因此您可以简单地拥有:
bind-key S set-window-option synchronize-panes