我正在尝试编写一个可以运行/源的脚本,以便 tmux 设置特定的布局并运行命令。我有一些结果。
这是我到目前为止所写的内容:
selectp -t 1
splitw -v -p 15
splitw -h -p 50
selectp -t 1
send-keys 'cd ~/code/octoly' Enter
send-keys 'vim .' Enter
selectp -t 2
send-keys 'cd ~/code/octoly' Enter
send-keys 'drails c' Enter
new-window -d -n server -c ~/code/octoly
selectw -t 2
send-keys 'fd' Enter
splitw -h -p 50
send-keys 'cd ~/code/octoly' Enter
send-keys 'drails s' Enter
selectp -t 1
splitw -v -p 50
send-keys 'cd ~/code/octoly' Enter
send-keys 'be guard' Enter
或多或少起作用的是第二个窗口和窗格的创建。尽管窗格没有给我我想要的东西。它们都是在第一个窗口中创建的,第二个窗口中没有创建。
这是我启动 tmux 时运行的命令:
tmux new 'tmux move-window -t 99 \; source-file ~/.tmux/session_octoly'
此外,我真正迷失的地方是,如果我逐条手动运行每个命令,它就会给我我想要的东西。
我在这里缺少什么?
首先,您正在使用-d
标记在new-window
这并不会使新窗口成为当前窗口:
如果给出 -d,会话不会使新窗口成为当前窗口。
不过我可能会旋转起来tmux
以不同的方式,使用tmux -f
标记以使用临时配置文件来执行您想要的操作。
请在您的环境中运行之前检查命令。
# File: ~/.tmux/octoly.conf
# Load default .tmux.conf
source-file ~/.tmux.conf
# setup octoly session
new-session -s octoly -n editor -d -c ~/code/octoly
send-keys 'vim .' Enter
split-window -v -p 15 -c ~/code/octoly
send-keys 'drails c' Enter
split-window -h -p 50 -c ~/code/octoly
# Select vim pane
select-pane -t 1
# create second window
new-window -n server -c ~/code/octoly
send-keys 'fd' Enter
split-window -h -p 50 -c ~/code/octoly
send-keys 'drails s' Enter
select-pane -t 1
split-window -v -p 50 -c ~/code/octoly
send-keys 'be guard' Enter
# Optional step, reselect window 1 (the one with vim)
select-window -t editor
然后你需要启动tmux
using:
tmux -f ~/.tmux/octoly.conf attach
另一种选择是构建一个发送相同命令的 bash 脚本。
Note: 我用过-c
标志来指定启动目录,而不是每次运行cd
命令。鉴于每个命令都在同一文件夹中运行,您可以将它们取出split-window
命令。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)