我有一个与这个人类似的问题https://stackoverflow.com/questions/5609192/how-to-set-up-tmux-so-that-it-starts-up-with-specified-windows-opened但更加具体。
我想在单个 tmux.conf 文件中执行此操作,无需任何键绑定即可根据@jasonwryan 的回答加载特定会话。
那么,我该怎么做呢?我设置了 tmux.conf:
new -s mySession -n myWindow
neww -n foo/bar foo
splitw -v -p 50 -t 0 bar
selectw -t 1
selectp -t 0
但是当我启动 tmux 时它不会分割窗口。
更新:我认为附加功能不起作用。如果我放弃第二个“foo”窗口并简化我的 tmux.conf:
# set panes the way I want them
# if I started tmux by just running 'tmux' in command line, it automatically creates session(0) so...
new -s mySession -n myWindow # ... create new session (1) with new window (0)
select-window -t myWindow # select myWindow (0)
splitw -v -p 50 -t myWindow # split myWindow (0) vertically into halves(50 percent)
attach -s mySession # error usage: attach-session [-dr] [-t target-session]
attach-session -t mySession # so this doesn't work either
switch -t mySession # nor doesn't work
那么我遗漏了什么?如果我在 tmux 启动后通过按 CTRL+bs 然后选择 mySession 手动切换会话,则窗格会被拆分,并且一切都很正常。那么如何从 session(0) 附加到 mySession 或切换到 mySession?
答案1
创建新会话、创建新窗口并将窗口拆分为 2 个窗格后,您仍需要附加到会话。添加
attach -s mySession
到上面显示的命令的末尾。
答案2
您必须告诉 tmux 启动哪个会话,但不是像其他人建议的那样在这个配置文件中启动,而是使用启动 tmux 的命令。
使用以下命令。
tmux -f <your tmux.conf file> attach -t mySession
我认为不可能从配置文件内部执行此操作,因为这适用于当前会话,但如果您使用简单命令启动它tmux
,则会创建一个新的会话。