这是我的 TmuxHome.sh 脚本,我可以启动一个唯一的 Tmux 会话:
# tmux Start Script Need To Work!!
if which tmux >/dev/null 2>&1; then
#if not inside a tmux session, and if no session is started, start a new session
test -z "$TMUX" && (tmux attach || tmux new-session)
fi
好吧,现在我想举例说明 TmuxHome.sh 使用默认的 .tmux.conf 和 TmuxWork.sh 使用 tmux-work.conf 都启用并运行单独的会话。如何毫无问题地做到这一点?也许下一个 TmuxTty.sh 或 TmuxDev.sh 等...
Arch wiki 网站上很好: https://wiki.archlinux.org/index.php/Tmux 现在和以前不同了
答案1
您可以简单地将适当的参数传递给这两个tmux
调用:
tmux
使用参数将自定义配置文件传递-f
给tmux
自身。- 对于
new-session
,您应该使用参数传递会话名称-s
。 - 对于,您可以通过(“t”代表“目标”)
attach
传递会话名称。-t
把它们放在一起:
# TmuxWork.sh
if which tmux >/dev/null 2>&1; then
#if not inside a tmux session, and if no session is started, start a new session
test -z "$TMUX" && (
tmux -f ~/.tmux-work.conf attach -t work ||
tmux -f ~/.tmux-work.conf new-session -s work
)
fi
(您可能只需要将配置文件传递给new-session
,因为在大多数情况下,这对于其他命令(例如attach
或 在会话内运行的命令)并不重要。)
您可以实际扩展此脚本转变如果您从会话“home”或另一个会话内部执行它,则使用以下switch-client
命令到会话“work”:
if test -n "$TMUX" ; then
tmux switch-client -t work
else
tmux attach -t work ||
tmux -f ~/.tmux-work.conf new-session -s work
fi
通过一些脚本,您也许能够将会话名称(本例中为“work”)和自定义配置文件名存储在 shell 变量中,并重用此代码片段来为您想要管理的许多会话提供自定义脚本。