目前,我有一些脚本可以打开一个新的 tmux 会话,并在该会话中填充新窗口和窗格。这很好用,但有时我只想使用一两个窗口进行监控,而不想创建一个全新的会话并切换到它。
我的问题是,是否有可能创建一个在现有会话上创建新窗口的脚本?
我尝试使用类似这样的脚本创建一个针对特定会话的新窗口:
tmux new-window -t "${current_session}" "${new_window}"
这会使目标会话上的屏幕闪烁,但不会添加任何窗口。我尝试在目标会话上使用以下方法,但没有成功。
:refresh-client
还尝试使用 send-keys,但这似乎将键码作为纯文本发送(在目标会话中使用 vim 捕获):
^B:new-window
更新:使用第一种方法,在目标会话的屏幕闪烁期间,我可以看到最后一个 tmux 选项卡确实在几分之一微秒内更改为“${new_window}”标签,但它看起来位于当前选项卡的位置。
答案1
是的,您使用new-window
:
tmux neww -tmysession: -- emacs
如果它使客户端重新绘制但窗口未创建,则可能是您正在运行的命令正在退出。您确定您有正确的命令并且它在新窗口的 PATH 中吗?尝试使用进行sleep 1000
测试,或者根本不给出命令,以便 tmux 启动 shell。