shell Tmux:如何使用choose-tree过滤当前会话窗口,并格式化输出以显示不带主机名的窗口名称

o4hqfura  于 2023-01-26  发布在  Shell
关注(0)|答案(1)|浏览(122)

我想将tmux choose-tree配置为仅显示当前会话的窗口
但与此同时,我希望保留我当前使用的格式(窗口名不带主机名)
我当前的设置是:

bind-key w choose-tree -F "#{window_name}"

看起来像这样:

I found the following config which filters the windows of my current session

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}"'

如何同时使用filter -f和formatter -F选项来生成所需的输出?
谢谢

cwxwcias

cwxwcias1#

run-shell在将命令传递给shell之前替换了某些字符串,如手册页中所述。您可以在包含##{session_name}#{session_name}的示例中看到这一点。
第一个表达式将##替换为#,得到最终字符串#{session_name},而第二个表达式将整个字符串替换为tmux变量#{session_name}的当前值,例如"www",这意味着choose-tree实际上是用参数-Nwf"#{==:#{session_name},www}"调用的。
您需要对-F表达式执行相同的操作,将#加倍,以便字符串不会扩展到当前值window_name

相关问题