2016-01-13 235 views
1

我想写一个脚本我可以运行/源所以tmux设置特定的布局和运行命令。我有一些结果。如何在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' 

而且,如果我真的失去了,如果我通过一个跑手各一个命令,它给我我想要的。

我在这里错过了什么?

回答

2

首先,您使用的new-window-d标志,不使新窗口当前窗口

如果-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

tmux -f ~/.tmux/octoly.conf attach 

另一种方法是建立一个bash脚本发送相同的命令。

注意:我已经使用了-c标志,而不是指定运行每次cd命令的启动目录。由于每个命令都在同一个文件夹中运行,因此您可以在split-window命令中将它们取出。

相关问题