2012-03-22 28 views
1

我試圖從屏幕切換到tmux。我的一個screenrc CONFIGS允許我跑VIM(使用NERD_tree + VIM許多分裂林)在大多數屏幕的頂部水平部分,保持一個更小的分割窗口底部的shell命令。如何將此屏幕會話配置轉換爲tmux中的類似配置?

# start two sessions 
screen -t code vim 
screen -t shell 
# goto screen 0 and split it 
select 0 
split 
# switch to bottom split and make it 8 lines smaller 
focus 
resize -8 
# select screen 1 to show in bottom split 
select 1 
focus 

回答

0

(注:這是我以前的答案的改進)

我們將添加必要的TMUX命令到一個名爲「VIM會話」文件我screenrc處理分割窗口的一部分。我們先看看內容,然後看看如何使用這個文件。

new-session -n code vim 
split-window 
resize-pane -D 8 

我們做的第一件事是創建一個新的會話。該-d阻止我們連接到會議只是還沒有和-n選項名稱會話的初始窗口,我們在其中運行vim。接下來,我們將窗口垂直分割成兩個窗格,一個在頂部,一個在底部。焦點自動移動到底部的新窗格。最後,我們將當前窗格向下調整(-D)8行。

你會使用

$ tmux -f vim-session attach 

這是說用我們剛剛創建的,而不是默認的文件~/.tmux.conf配置文件啓動TMUX會議。我們給予明確的命令attach到TMUX,使其連接到我們創建的會話(但不重視)在「VIM會話」。如果沒有attach,TMUX將 隱式地創建一個新的會話和附加到的,而不是我們在「VIM會話」創建的會話。

通過稍微改變一下你的大小調整的標準,我們可以刪除調用resize-pane

new-session -d -n code vim 
split-window -p 30   # Make the new pane 30% of your screen 
#split-window -l 10  # Make the new pane exactly 10 lines. 

我不認爲有辦法有split-window創建一個新的面板比小一半8條線,雖然。

+0

很多答案看見的Ive通常涉及不必創建一個單獨的文件,然後你開始TMUX或從會話內部時有出處,否則,你會得到一個「無法建立會話」錯誤。 將是很好不需要額外的文件... – Eno 2012-03-23 20:44:24

+0

這似乎給我完全相同的設置爲屏幕,所以感謝。順便說一句,-f似乎暗示〜/ .tmux.conf會被忽略嗎? (很快在^停止工作之後意識到這個熱鍵:-) – Eno 2012-03-26 14:50:14

+0

正確;這可能是在我的其他答案中使用shell腳本的最大原因。 – chepner 2012-03-26 15:06:03

0

也許我的其他答案一個更好的選擇是使用shell腳本,保留的配置文件之類的東西鍵綁定,狀態欄配置等

#!/bin/bash 
tmux new-session -d -s coding-session -n code vim 
tmux split-window -p 30 
tmux attach-session -t coding-session 

在這裏,我們執行三位來自TMUX命令貝殼。第一個創建一個新的會話,但不附加到它(以便該過程可能會退出)。第二個發送split-window命令(可能是)最近創建的會話。第三個將客戶端連接到指定的會話。