如何在tmux中自动命名会话?

时间:2015-06-10 19:21:11

标签: tmux

如果我有一个shell脚本来确定任意Tmux会话的名称,如何配置Tmux在创建新会话时调用它(同时使用tmux new:new-session)并将其输出用作会话名称?

3 个答案:

答案 0 :(得分:2)

在chepner的答案基础上,如果你在tmux里面,那么这就可以了

new-session ; run-shell "tmux rename-session $(echo testsession)"

您可以将此命令绑定到一个键,比如N,以便于下面的

bind N new-session -s "startname" \; run-shell "tmux rename-session $(echo testsession)>/dev/null" 

用您的命令替换'echo testsession'。 在测试期间,tmux不允许明显的“运行”tmux new -s $(echo testsession)“'并返回错误

答案 1 :(得分:0)

在命令行中,您不需要任何tmux特定功能,只需在shell中使用普通的vanilla命令替换。假设您的脚本名为make-session-name

tmux new-session -s "$(make-session-name)"

可能有一种方法可以在tmux命令提示符下执行类似操作,但我不知道。

答案 2 :(得分:0)

这里有一个创建tmux会话的小脚本,命名第一个窗口" home",创建第二个窗口并命名为#34;下载",将其更改为下载目录并列出它的内容,然后打开附加到此会话的tmux。这应该会告诉你你的目标。

#!/bin/bash
SESSION=$USER

tmux -2 new-session -d -s $SESSION

# Setup a window for home dir
tmux rename-window 'home'

# Setup a download window
tmux new-window -t $SESSION:1 -n 'download' 
tmux send-keys "cd /home/user/download; ls -lh" C-m

# Set default window
tmux select-window -t $SESSION:0


# Attach to session
tmux -2 attach-session -t $SESSION