2014-10-09 94 views
0

我想命名一個tmux窗格,以便稍後在一個腳本中我可以專門引用該窗格。我對tmux相當陌生。我有一個.tmux配置,寫了一個或兩個腳本,用一些窗格設置窗口,但我確定我不確切知道它們是如何一起工作的。有沒有辦法設置tmux窗格的名稱?然後通過名稱在腳本中引用該窗格?

晴我的劇本做這樣的事情:

tmux spit-window -h 
tmux select-pane -t 0 
tmux send-keys "run some command" C-m 

...並重復同樣的事情在一個窗格..

而是我想這樣做

tmux split-window -h 
tmux select-pane -t 0 
tmux name-pane "tail of X log" 
tmux send-keys "run some command" C-m 

然後在另一個腳本中完成該配置後:

tmux selected-named-pane "tail of X log" 
tmux send-keys "exit" 

當然,我只是在我想退出的窗格列表上循環。

有沒有辦法做這樣的事情?

回答

0

man tmux中的NAMES AND TITLES部分討論了窗格標題。

下面是相關的摘錄:

一個窗格的標題通常是由窗格內運行的程序設置的,並非由TMUX修改。

而不是使用窗格名稱,我可以建議使用窗格ID號。 「窗格ID」是當前tmux會話的唯一編號。這只是一個以「%」爲前綴的數字,例如「%5」。

這是如何獲得當前窗格的窗格ID:tmux display-message -p "#{pane_id}"

通過將此ID保存在某處,您可以在某處輕鬆地引用它。下面是示例代碼:

tmux split-window -h 
tmux select-pane -t 0 

# save a pane id to a shell variable 
current_pane_id=$(tmux display-message -p "#{pane_id}") 

# now save the shell variable to tmux user option (user options are prefixed with @) 
tmux set -g @some_variable_name "$current_pane_id" 

以後,當你想從另一個腳本中引用保存窗格:

# get saved pane id to a shell variable 
pane_id="$(tmux show -g @some_variable_name)" 

# use -t flag to specify the "target" where the keys are sent 
tmux send-keys -t "$pane_id" "exit" 
相關問題