2016-01-13 47 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命令中將它們取出。

相關問題