前兩天在給另外一個團隊幫忙時,看他們在Rails日志、代碼文件、git文件系統里面來回穿梭,覺得他們太累了,於是就介紹了 tmux
給他們用。但只講了一點基本的開窗口、分屏,沒給講太多技巧,因為一下子講太多也消化不了,還不如讓他們自己慢慢學(記得 man tmux
和 C-b ?
就差不多了)。
不過過了一會兒,小陸問我: 咦,你怎么可以用鼠標將窗口拖大拖小? 我說,”就幾個配置而已“,正說要讓他到我博客上看詳細說明,突然想起:咦,我好像沒寫過這個? 以前在 ~/.tmux.conf
曾經加過不少配置,后來長期留下來的還沒幾行,其中就有這個。這么重要的東西我居然忘記記在博客上了——說明已經完全記錄在腦袋里面了?
其實就這么幾行配置:
setw -g mouse-resize-pane on
setw -g mouse-select-pane on
setw -g mouse-select-window on
setw -g mode-mouse on
這幾行的作用分別是:
- 開啟用鼠標拖動調節pane的大小(拖動位置是pane之間的分隔線)
- 開啟用鼠標點擊pane來激活該pane
- 開啟用鼠標點擊來切換活動window(點擊位置是狀態欄的窗口名稱)
- 開啟window/pane里面的鼠標支持(也即可以用鼠標滾輪回滾顯示窗口內容,此時還可以用鼠標選取文本)
這幾行配置加到 ~/.tmux.conf
中,然后在tmux里面按 C-b :
執行 source ~/.tmux.conf
即可生效 (也可以直接將這幾行放在 C-b :
的輸入行去執行,每次執行一行,不過 tmux重啟后還得再來一遍)。
什么是window?
就是用 C-b c
創建出來的窗口,每個window跟tmux所在的終端一樣大,window里面可以容納多個pane。
所有窗口的名稱顯示在底部狀態欄上,如下圖所示。 有了上面的配置,只要點擊窗口名就可以切換到指定窗口了 (快捷鍵是 C-b n
, C-b p
, C-b 1
.. C-b 9
)
(圖盜自這里: Increased Developer Productivity with Tmux, Part 2: ~/.tmux.conf)
什么是pane?
就是窗口里面的分屏,可以用 C-b o
來切換到下一個pane,或者用 C-b Up
切換到當前pane上方的pane, 用C-b Down
切換到當前pane下方的pane.
還有一種切換方法是 C-b q
,tmux會顯示每個pane的序號,按這個序號就可以跳過去了(按慢了可不行,得在數字消失前按)。
(本圖片盜自: http://www.slideshare.net/lgfang/tmux/14 )
開啟了 mouse-select-pane
選項之后, 就可以用鼠標點擊面板切換了
用鼠標改變pane的大小
其實前面切換window或者pane,用鼠標並沒有太大優勢,也就只能略微減輕一點記憶負擔。 但用鼠標拖動改變pane的大小這條是比快捷鍵有優勢的,因為用快捷鍵很難一次調節到位 ,比如是增加6行還是9行? 縮小20列還是40列?而且 還可以斜向拖住交叉點來同時改變多個窗口的大小
附送一條貼士: 最大化/還原pane
- 如果你用的是tmux >= 1.8,那么可以用
C-b z
來最大化一個pane,想恢復的時候再次按C-b z
就是了 - 如果你用的是tmux < 1.8,那么有點復雜,自己看這里: “Maximizing” a pane in tmux
參考
推薦下面兩個slides,講得都很通俗易懂。不過slideshare被薔了,各位自己想辦法吧