這部影片由 Dreams of Code 頻道製作,介紹了終端多工器 tmux 的強大功能與配置方法。作者分享了他如何從 IDE 使用者轉變為以 tmux + Neovim 為核心的開發工作流,並逐步示範如何將 tmux 從預設的簡陋外觀,打造成現代、美觀且高效的終端環境。
原影片連結:https://www.youtube.com/watch?v=DzNmUNvnB04
影片重點
- tmux 是終端多工器,能管理多個 session、window 和 pane
- 使用 TPM(Tmux Plugin Manager)管理 tmux 外掛套件
- tmux-sensible 套件可修正 tmux 的預設行為怪癖
- vim-tmux-navigator 實現 tmux 與 Neovim 之間的無縫切換
- 將 prefix key 從預設的
Ctrl+B改為Ctrl+Space更實用 - 使用 Catppuccin 主題取代預設的綠色狀態列
- 啟用滑鼠支援讓操作更直覺
- window 和 pane 的索引從 1 開始比從 0 開始更符合人體工學
- tmux-yank 搭配 Vim 風格按鍵綁定改善複製體驗
- 新分割的 pane 預設開啟在當前目錄更實用
詳細內容
[00:00] 為什麼 tmux 如此重要
作者開門見山地說,tmux 是對他寫程式方式影響最大的一款軟體。在發現 tmux 之前,他主要使用 IDE 和圖形編輯器,只在需要時才進入終端。但自從開始使用 tmux,他的預設編輯器變成了 Vim(Neovim),並且能在終端中享受 tiling window manager 的所有好處。
tmux 提供了幾個他離不開的核心功能:建立和管理多個終端 window、將 window 分割成多個 pane、防止工作階段因終端意外關閉而遺失,以及透過 SSH 連線到另一台電腦並重新接上之前的 tmux session(他稱之為「床上寫程式」的最佳搭檔)。
[01:28] 安裝前置準備
開始配置之前需要安裝兩樣東西:tmux 本身(影片錄製時最新版本是 3.3a)和 TPM(Tmux Plugin Manager)。TPM 透過 git clone 安裝到 ~/.tmux/plugins/tpm 目錄。
接著建立 tmux 設定檔。作者建議使用 XDG config 路徑 ~/.config/tmux/tmux.conf,這是比較現代的 dotfile 管理方式。在設定檔中加入載入 TPM 的程式碼,同時安裝 tmux-sensible 套件——這個套件會修正 tmux 一些預設行為上的怪癖。
[02:43] tmux 基本概念:Session、Window、Pane
tmux 的架構由三個主要物件組成:
Session 是最上層的單位,包含一個或多個 window。你可以同時開啟任意數量的 session,但通常只會 attach 到其中一個。
Window 是一個或多個 pane 的容器,可以把它想像成瀏覽器的分頁。Session 底部的狀態列會顯示所有 window,當前 window 以星號標記。
Pane 是 window 中的分割區域,代表一個獨立的終端。同一時間只有一個 pane 處於 active 狀態。
[03:30] 基本按鍵操作
所有 tmux 命令都需要先按 prefix key(預設是 Ctrl+B),然後再按對應的按鍵:
Window 操作:
prefix + c:建立新 windowprefix + 數字:切換到指定 windowprefix + n/p:切換到下一個/上一個 windowprefix + &:關閉 window
Pane 操作:
prefix + %:水平分割prefix + ":垂直分割prefix + 方向鍵:在 pane 之間導航prefix + {/}:交換 pane 位置prefix + q:顯示 pane 編號prefix + z:放大/縮小當前 paneprefix + !:將 pane 獨立成 windowprefix + x:關閉 pane
Session 操作:
tmux:建立新 sessiontmux new -s 名稱:建立具名 sessiontmux ls:列出所有 sessionprefix + s:在 tmux 內列出 sessionprefix + w:預覽所有 session 的 windowtmux attach -t 名稱:附加到指定 session
[06:32] 配置 Vim-Tmux Navigator
安裝完 TPM 後,作者首先推薦的套件是 vim-tmux-navigator。這個套件提供兩個功能:
第一,使用 Ctrl+h/j/k/l 在 tmux pane 之間導航,與 Vim 的方向鍵一致。第二,同時在 Neovim 中安裝對應的外掛後,可以實現 tmux 和 Neovim 之間的無縫切換——用同一組按鍵就能在 Neovim 的 split 和 tmux 的 pane 之間自由移動,讓兩者彷彿是同一個應用程式。
作者使用 NvChad 作為 Neovim 配置,需要額外覆寫一些按鍵綁定來避免衝突。此外,他還加入了 Shift+Alt+H/L 來快速在 window 之間切換。
[08:14] 修正 tmux 的顏色問題
在 tmux session 中,Neovim 的 Catppuccin 主題顏色可能會與終端外的不一致。解決方法是在 tmux 設定中加入 24-bit color 支援的設定行,讓顏色在 tmux 內外保持一致。
[08:45] 更改 Prefix Key
預設的 Ctrl+B prefix 在終端中經常與其他功能衝突。作者推薦改成 Ctrl+Space,只需在設定檔中加入三行設定即可完成更改。
[09:12] 安裝 Catppuccin 主題
預設的 tmux 狀態列是一條「醜陋的綠線」。作者最喜歡的配色方案 Catppuccin 也提供了 tmux 外掛,透過 TPM 即可安裝。預設使用 Mocha 風格,也可以切換為 Latte(淺色)等其他變體。
作者還提到他有自己 fork 的版本,因為官方套件在 window tab 上只顯示目錄名稱,而他偏好顯示更多資訊。
[10:03] 啟用滑鼠支援
加入一行設定即可啟用滑鼠支援。啟用後可以用滑鼠點擊切換 window 或 pane,也能用滾輪瀏覽 buffer 歷史記錄。
[10:18] Window 和 Pane 索引從 1 開始
預設的 tmux 從 0 開始索引 window,但鍵盤上 0 在最右邊,導航時很不直覺。設定 base-index 1 和 pane-base-index 1 可以讓索引從 1 開始,提供更好的使用體驗。
[10:40] 安裝 tmux-yank 複製套件
tmux-yank 讓你可以在 tmux 中使用 y 鍵複製文字。進入 copy mode 的方式是按 prefix + [,然後用 Vim 導航鍵移動游標。
作者覺得預設的選取方式(Ctrl+V 加 Space)不夠直覺,因此重新綁定為更像 Vim 的操作方式:按 v 開始選取,y 複製,Ctrl+v 切換矩形/行選取模式。
[12:00] 新 Pane 開啟在當前目錄
最後一個配置是讓新分割的 pane 自動開啟在當前工作目錄。作者發現在大多數情況下,他需要在新 pane 中繼續在同一個目錄下工作,而從目標目錄回到 home 目錄比反過來容易得多。透過重新綁定水平和垂直分割的按鍵,加入 pane_current_path 參數即可實現。
我的想法
tmux 作為終端多工器的地位至今無可撼動,這部影片的配置指南即使過了幾年依然非常實用。值得注意的是,vim-tmux-navigator 這個套件解決了一個很多人在 tmux + Neovim 工作流中遇到的痛點——pane 導航的割裂感。一旦設定好,tmux 和 Neovim 的邊界幾乎消失,這正是讓很多開發者願意從 IDE 轉向終端工作流的關鍵因素。
對於目前大量使用 AI 輔助開發(如 Claude Code)的開發者來說,tmux 的 session 持久化功能更是不可或缺——你可以在一個 pane 跑 Claude Code,另一個 pane 看程式碼,再一個 pane 跑測試,即使 SSH 斷線也不會丟失任何工作進度。建議初學者先把 prefix key 改成 Ctrl+Space 和安裝 Catppuccin 主題作為起點,體驗到視覺上的提升後,再逐步加入其他配置會更有動力持續使用。
進階測驗:Tmux 配置與實戰應用
共 5 題,包含情境題與錯誤診斷題。



