還記得我幾天前介紹過的 Zsh 嗎,我們今天的主角 Tmux 與 Zsh,Vim 一起被大家稱為「文本三巨頭」,即使是在 GUI 發達的今天,Tmux 仍然擁有大量的用戶。


PART 0 → Tmux 能幹什麼?

Tmux 的全稱是 Terminal MUtipleXer,及終端復用軟體。顧名思義,它的主要功能就是在你關閉終端窗口之後保持進程的運行,此外 Tmux 的另一個重大功能就是分屏 ↓

這是我的 Tmux 配置(圖片僅供參考,產品以實物為準) ↑

你可會說:有很多終端模擬器(Terminal Emulator)都支持分屏啊?!

我在這裡不想給你爭論哪個方法更好,因為僅憑幾句話很明顯無法說服你頑固的想法。

這個星球上還有一個和 Tmux 相似的軟體叫 Screen,不過 Screen 項目幾百年前(誇張手法)就停止維護了,而且功能也較少,據說還會和其他軟體發生衝突。因此我們有充足的理由選用 Tmux 而不是 Screen。

PART 1 → 安裝

使用 apt-get 在 Ubuntu 系統中安裝:

sudo apt-get install tmux

用 homebrew 在 Mac 上安裝

brew install tmux

其他系統(比如Windows)請自行搜索

PART 2 → 基本使用

絕大多數 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 中工作的截圖。

我的 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 &amp;amp;amp;gt; Window &amp;amp;amp;gt; Pane

如果你需要創建多個Session,請按下 <prefix> + : (英文冒號),然後輸入new,在按下 return/enter。

你現在進入了一個全新的Session,如果你希望切換回原來的 Session,試著按下 <prefix> + s 或 <prefix> + w。

現在你可以看見你所有的 Tmux 的 Session,Window 和 Pane。上下移動來選擇你要進入的 Session。

需要知道的是,所有的 Session 都在一個 Tmux Server 裏運行,一般來說,你不可以創建多個 Server(特殊情況這裡不做討論)。

至此,你已經學會了 Tmux 的基本使用方法。

PART 2 → 自定義配置&插件

我之所以沒有在上一章列出所有的快捷鍵,是因為我們會在這一章中進行 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> 2 在下方添加 Pane

<prefix> 0 關閉 Pane

<prefix> o 在 Pane 之間切換

<prefix> H 向左擴大 Pane

<prefix> J 向下擴大 Pane

<prefix> K 向上擴大 Pane

<prefix> L 向右擴大 Pane

<prefix> m 最大化/還原 Pane

<prefix> h/j/k/l 在 Pane 之間切換

Window

<prefix> c 創建新 Window

<prefix> <C-h> 切換至左側 Window

<prefix> <C-l> 切換至右側 Window

<prefix> q 關閉 Window

狀態欄

<prefix> s 隱藏/顯示狀態欄

如果你不喜歡這個配置,可以在 ~/.tmux.conf 中更改。

補充一下,現在我的 tmux 配置安裝方法有改動:

$ curl -fsSL "https://raw.githubusercontent.com/peterzililuo/tmuxconfig/master/install.sh" | /bin/sh

一行命令搞定

推薦閱讀:

相關文章