我想配置tmux choose-tree
to 仅显示我当前会话的窗口.
但与此同时我想保留我当前使用的格式(不带主机名的窗口名称):
我当前的设置是:
bind-key w choose-tree -F "#{window_name}"
看起来像这样:
我发现以下配置可以过滤当前会话的窗口 https://stackoverflow.com/questions/49911496/where-is-the-tmux-command-for-choose-window:
bind-key w run-shell 'tmux choose-tree -Nwf"##{==:##{session_name},#{session_name}}"'
但是,我无法按照我想要的方式格式化输出......
我尝试混合这两个命令,但输出没有按预期工作(它打印每个窗口的活动窗口...):
bind-key w run-shell 'tmux choose-tree -Nwf"##{==:##{session_name},#{session_name}}" -F "#{window_name}"'
我该如何使用过滤器-f
和格式化程序-F
选项一起产生所需的输出?
谢谢
run-shell
在将命令传递到 shell 之前替换某些字符串,如手册页中所述。你可以在你的例子中看到这一点,它同时具有##{session_name}
and #{session_name}
.
第一个表达式有##
取而代之#
得到最终的字符串#{session_name}
,而第二个将整个字符串替换为 tmux 变量的当前值#{session_name}
,例如可能是"www"
。这意味着choose-tree
实际上是带参数调用的-Nwf"#{==:#{session_name},www}"
.
您需要对-F
表达式,加倍#
这样字符串就不会扩展到当前值window_name
。所以尝试一下-F "##{window_name}"
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)