![如何在 tmux 的狀態列中取得目前工作目錄和目前處理程序?](https://rvso.com/image/191784/%E5%A6%82%E4%BD%95%E5%9C%A8%20tmux%20%E7%9A%84%E7%8B%80%E6%85%8B%E5%88%97%E4%B8%AD%E5%8F%96%E5%BE%97%E7%9B%AE%E5%89%8D%E5%B7%A5%E4%BD%9C%E7%9B%AE%E9%8C%84%E5%92%8C%E7%9B%AE%E5%89%8D%E8%99%95%E7%90%86%E7%A8%8B%E5%BA%8F%EF%BC%9F.png)
我想要兩個狀態行,第一個狀態列顯示視窗所在的目錄,第二個狀態列顯示視窗中正在運行的進程。這可能嗎?我使用 bash,但如果更容易進行此配置,我願意切換到另一個 shell。
如果 tmux 無法做到這一點或很難配置,我是否可以使用其他工具來為我提供此資訊? (基本上我想在終端機中打開多個選項卡/窗口,以及目錄和進程資訊。)
答案1
一個非常好的問題。我可以讓它“工作”,但還不足以“可用”,恕我直言。我同意,如果效果足夠好,這將是一種很好的格式。我將提供我在這裡找到的信息,希望您(或其他人)可以填寫剩下的謎題。
從 2019 年 tmux 2.9 開始,可以輕鬆使用setw -g status 2
.第一行的格式是(一個非常基本的版本):
setw -g status-format[0] '#{W:#{pane_current_path} }' # or ...
setw -g status-format[0] '#{W:#(pwd) }'
第二行是:
setw -g status-format[1] '#{W:#{pane_current_command} }' # or possibly
setw -g status-format[1] '#{W:#W } # if there's no other function changing the window title'
問題是這些根本沒有相互對齊,而且我還沒有找到透過 tmux 配置指令來做到這一點的方法。可能有一種方法可以至少將頂部和底部結果填充/強製到一定的寬度,以這種方式創建對齊,但我還沒有做到這一點。
另請注意,預設情況下,tmux 僅每 15 秒更新一次。您可以使用類似的方法更新此間隔setw -g status-interval 1
。
另請注意,只需預先添加命令即可在 shell 中以互動方式使用任何命令tmux
。