如何在 tmux 的狀態列中取得目前工作目錄和目前處理程序?

如何在 tmux 的狀態列中取得目前工作目錄和目前處理程序?

我想要兩個狀態行,第一個狀態列顯示視窗所在的目錄,第二個狀態列顯示視窗中正在運行的進程。這可能嗎?我使用 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

相關內容