2014-10-09 46 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" 
相关问题