Oh My Zsh 外掛教學:內建外掛 vs 第三方外掛,怎麼裝不翻車

Oh My Zsh 的外掛系統是它讓人留下來用的核心原因——但很多人裝了之後只開了 git,然後就沒有然後了。
這篇把外掛系統說清楚:怎麼運作、怎麼啟用、哪些值得裝、第三方外掛怎麼管。
外掛分兩種,管法完全不一樣
內建外掛(bundled plugins)住在 ~/.oh-my-zsh/plugins/ 目錄裡,裝 OMZ 時就帶進來了,不用另外下載,直接在 .zshrc 的 plugins=() 加名字就啟用。
第三方外掛(community plugins)不在上面那個目錄裡,你要自己 clone 到 $ZSH_CUSTOM/plugins/ 底下,然後才能在 plugins=() 加名字。
這個差異不搞清楚,就會出現「我明明加了名字,為什麼指令還是沒用」的困惑。
啟用內建外掛
打開 ~/.zshrc,找到 plugins 那行:
plugins=(git z docker npm node)括號內用空白分隔,不用引號。改完記得 source ~/.zshrc。
幾個值得加進去的內建外掛:
| 外掛名稱 | 功能 |
|---|---|
git |
git 指令 alias(gst、gco、gp 等) |
z |
智慧跳目錄——去過的路徑 z proj 就能跳到 |
docker |
docker 指令補完 |
npm |
npm 常用指令 alias |
node |
node 版本相關指令 |
sudo |
按兩下 Esc 自動在指令前加 sudo |
web-search |
終端機直接 google 搜尋詞 開瀏覽器搜尋 |
history |
h 查歷史記錄、hsi 搜尋歷史 |
sudo 那個是我私心推薦的——下了指令發現需要權限,按兩下 Esc 就搞定,不用重打整行。
安裝第三方外掛
有兩個第三方外掛幾乎是必裝的:zsh-autosuggestions 和 zsh-syntax-highlighting。裝法都一樣:
1. clone 到 custom plugins 目錄
# zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-autosuggestions \
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
# zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-syntax-highlighting \
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting2. 加到 .zshrc 的 plugins 清單
plugins=(
git
z
sudo
zsh-autosuggestions
zsh-syntax-highlighting
)注意:zsh-syntax-highlighting 要放在 plugins 清單的最後一個,否則語法高亮可能失效。
3. 重載設定
source ~/.zshrczsh-syntax-highlighting 做了什麼
打指令時,有效的指令顯示綠色,打錯的顯示紅色——在按下 Enter 之前就知道有沒有拼錯。
聽起來很小,但你踩過「打了一長串指令按 Enter 才發現第一個字打錯」的痛,就知道這個多有價值。
zsh-autosuggestions 的故事
這個外掛值得獨立一篇來說——它根據歷史記錄即時預測你下一步要打什麼,而且設定空間非常大。
下一篇 03-auto-suggestions 完整深挖:預測策略、補完快捷鍵、效能調校、以及讓它在 ssh 環境也能好好運作的設定。
外掛太多會變慢
這是真實存在的問題——每個外掛在 shell 啟動時都要跑一段 script。裝太多的話,zsh 啟動會開始感覺到延遲。
判斷標準很簡單,跑一下:
time zsh -i -c exit結果超過 1 秒就該注意了。超過 2 秒肯定是哪個外掛在拖後腿,用二分法逐一停用找出來。
一般來說,外掛清單控制在 10 個以內比較保險。
外掛系統搞清楚了,繼續 03-auto-suggestions:這系列的重頭戲。