Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Syntax tmux.conf:if在密钥绑定中_Syntax_Config_Tmux - Fatal编程技术网

Syntax tmux.conf:if在密钥绑定中

Syntax tmux.conf:if在密钥绑定中,syntax,config,tmux,Syntax,Config,Tmux,(对不起,英语不好) 我的目标:根据“变量”执行不同的命令,但使用一键绑定 我想用S(大写字母S)取消/激活窗格同步,因为小S用于显示不同的会话,但我真的不知道如何编写。(当然我可以重新绑定s,但会话的小s在我的脑海中烙印) 我想可能是这样的: bind S“if(snychronize panes=on)”;然后“关闭setw同步窗格”:否则“打开setw同步窗格” 我尝试用一个变量替换“synchronize panes”,但我不知道如何在tmux.conf中编写corret if子句。这应

(对不起,英语不好) 我的目标:根据“变量”执行不同的命令,但使用一键绑定

我想用S(大写字母S)取消/激活窗格同步,因为小S用于显示不同的会话,但我真的不知道如何编写。(当然我可以重新绑定s,但会话的小s在我的脑海中烙印)

我想可能是这样的:
bind S“if(snychronize panes=on)”;然后“关闭setw同步窗格”:否则“打开setw同步窗格”


我尝试用一个变量替换“synchronize panes”,但我不知道如何在tmux.conf中编写corret if子句。

这应该可以工作,使用内置变量
pane\u synchronized
和if-then-else的格式版本:
{表达式,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 

bind key-n C-k if shell'test#{window_panes}-gt 1''选择窗格-t:.-1''send keys C-k'
是我执行键绑定以确定ctrl+k是否应选择下一个窗格或将ctrl+k发送到终端的方法,尽管我不知道如何测试同步窗格是否打开。谢谢,这很有效。你用它作为一种元组,通过点击“S”来旋转吗?我不确定我是否理解你的意思。当您键入S并处于同步模式时,变量
{pane\u synchronized}
的值为1。因此,结果表达式是
{1,off,on}
,其值为“off”。(与之相反的是
{0,off,on}
的值为“on”。)因此最后一个命令是
设置窗口选项同步窗格off
。顺便说一下,我在答案中添加了
-F
,因为一些版本的tmux可能需要它来确保值
{…}
被视为一种格式。别忘了单击答案旁边的勾号,以便其他读者知道它应该对他们有用。如果您设置了同步窗格(不打开
或关闭
),tmux将切换该选项。