還記得我幾天前介紹過的 Zsh 嗎,我們今天的主角 Tmux 與 Zsh,Vim 一起被大家稱為「文本三巨頭」,即使是在 GUI 發達的今天,Tmux 仍然擁有大量的用戶。
Tmux 的全稱是 Terminal MUtipleXer,及終端復用軟體。顧名思義,它的主要功能就是在你關閉終端窗口之後保持進程的運行,此外 Tmux 的另一個重大功能就是分屏 ↓
你可會說:有很多終端模擬器(Terminal Emulator)都支持分屏啊?!
我在這裡不想給你爭論哪個方法更好,因為僅憑幾句話很明顯無法說服你頑固的想法。
這個星球上還有一個和 Tmux 相似的軟體叫 Screen,不過 Screen 項目幾百年前(誇張手法)就停止維護了,而且功能也較少,據說還會和其他軟體發生衝突。因此我們有充足的理由選用 Tmux 而不是 Screen。
使用 apt-get 在 Ubuntu 系統中安裝:
sudo apt-get install tmux
用 homebrew 在 Mac 上安裝
brew install tmux
其他系統(比如Windows)請自行搜索
絕大多數 Tmux 的快捷鍵都以一個 <Prefix> (前綴)開始,Tmux 默認的 Prefix 是 Ctrl + b,中所周知,這個 Prefix 簡直爛爆了,按起來彆扭的像個什麼一樣,因此我會在 PART 2 → 自定義配置 中講講如何更改這個 Prefix。
舉個例子,快捷鍵 <prefix> + k 的意思就是先同時按下 Ctrl 和 b,然後鬆開,然後再按 k。
現在啟動 Tmux,在一個空白的終端窗口輸入命令:
tmux
然後按下你人生中的第一個 Tmux 快捷鍵:<prefix> + %
也就是說,你需要先同時按下 Ctrl 和 b,然後再按 % (一般來說是 Shift + 5),請務必使用英文輸入法且不要打開大寫鎖定
你會看見你的終端窗口分成了左右兩部分,再按 <prefix> + o (是英文字母 o,不是0)。你會發現你的遊標從右側窗口切換到了左側,如果再重複這些操作,你的遊標會在兩個窗口之間切換。
玩夠了之後,在試試 <prefix> + " (英文輸入法下的雙引號,也就是Shift + 單引號,通常在 return/enter 鍵的左側)
這時你的終端窗口又被上下分屏了。
在告訴你更多快捷鍵之前,我想介紹一下 Tmux 的 Session,Window,和 Pane 的關係。
這是某年某月某日我在 Tmux 中工作的截圖。
就像圖上寫的那樣,屏幕上的一個工作區域叫 Pane。
除了 Pane 以外,Tmux 還允許你打開多個 Window,其實 Window 這個詞比較有誤導性。你可以把 Tmux 中的 Window 理解為 Linux 中的 Workspace,或者 macOS/Windows 中的桌面 (Desktop)。
在 Tmux 中,一個 Window 可以有多個 Pane。這就好比在 macOS/Windows 中一個桌面可以有多個窗口。
而所有的 Window 都是在一個 Session 裏,而你可以同時打開多個 Session。
現在你可以嘗試著創建多個 Window,按下快捷鍵 <prefix> + c,你會進入一個新的 Window,這個 Window 只有一個 Pane;你可以試著用我之前說的方法把這個 Window 分割成多個 Pane。
一張圖概括 Session,Window 和 Pane 的關係:
如果你需要創建多個Session,請按下 <prefix> + : (英文冒號),然後輸入new,在按下 return/enter。
你現在進入了一個全新的Session,如果你希望切換回原來的 Session,試著按下 <prefix> + s 或 <prefix> + w。
現在你可以看見你所有的 Tmux 的 Session,Window 和 Pane。上下移動來選擇你要進入的 Session。
需要知道的是,所有的 Session 都在一個 Tmux Server 裏運行,一般來說,你不可以創建多個 Server(特殊情況這裡不做討論)。
至此,你已經學會了 Tmux 的基本使用方法。
我之所以沒有在上一章列出所有的快捷鍵,是因為我們會在這一章中進行 Tmux 的自定義配置,完整的 Cheatsheet 會在文章尾部列出。
和許多命令行的軟體一樣,Tmux 有超多的自定義配置選項,而且 Tmux 的配置並不算太難。如果你懶得自己配置的話,可以用我的配置。
如果你用的是 Linux/macOS,你可以通過腳本安裝:
$ git clone https://github.com/peterzililuo/tmuxconfig.git # 把 倉庫 Clone 下來
$ ./tmuxconfig/install.sh
接著,按下 <prefix> + :
輸入 source-file ~/.tmux.conf
在這個配置中,<prefix> 被改為了 Ctrl + x
(網上有很多人用 Ctrl + a 的,但是這會和系統的移到行首快捷鍵衝突)
這裡是一些常用的快捷鍵(在我的配置裏):
Pane
<prefix> 1 在右側添加 Pane
<prefix> 1
<prefix> 2 在下方添加 Pane
<prefix> 2
<prefix> 0 關閉 Pane
<prefix> 0
<prefix> o 在 Pane 之間切換
<prefix> o
<prefix> H 向左擴大 Pane
<prefix> H
<prefix> J 向下擴大 Pane
<prefix> J
<prefix> K 向上擴大 Pane
<prefix> K
<prefix> L 向右擴大 Pane
<prefix> L
<prefix> m 最大化/還原 Pane
<prefix> m
<prefix> h/j/k/l 在 Pane 之間切換
<prefix> h/j/k/l
Window
<prefix> c 創建新 Window
<prefix> c
<prefix> <C-h> 切換至左側 Window
<prefix> <C-h>
<prefix> <C-l> 切換至右側 Window
<prefix> <C-l>
<prefix> q 關閉 Window
<prefix> q
狀態欄
<prefix> s 隱藏/顯示狀態欄
<prefix> s
如果你不喜歡這個配置,可以在 ~/.tmux.conf 中更改。
補充一下,現在我的 tmux 配置安裝方法有改動:
$ curl -fsSL "https://raw.githubusercontent.com/peterzililuo/tmuxconfig/master/install.sh" | /bin/sh
一行命令搞定
推薦閱讀: