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

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

Oh My Zsh 的外掛系統是它讓人留下來用的核心原因——但很多人裝了之後只開了 git,然後就沒有然後了。

這篇把外掛系統說清楚:怎麼運作、怎麼啟用、哪些值得裝、第三方外掛怎麼管。

外掛分兩種,管法完全不一樣

內建外掛(bundled plugins)住在 ~/.oh-my-zsh/plugins/ 目錄裡,裝 OMZ 時就帶進來了,不用另外下載,直接在 .zshrcplugins=() 加名字就啟用。

第三方外掛(community plugins)不在上面那個目錄裡,你要自己 clone 到 $ZSH_CUSTOM/plugins/ 底下,然後才能在 plugins=() 加名字。

這個差異不搞清楚,就會出現「我明明加了名字,為什麼指令還是沒用」的困惑。

啟用內建外掛

打開 ~/.zshrc,找到 plugins 那行:

plugins=(git z docker npm node)

括號內用空白分隔,不用引號。改完記得 source ~/.zshrc

幾個值得加進去的內建外掛:

外掛名稱 功能
git git 指令 alias(gstgcogp 等)
z 智慧跳目錄——去過的路徑 z proj 就能跳到
docker docker 指令補完
npm npm 常用指令 alias
node node 版本相關指令
sudo 按兩下 Esc 自動在指令前加 sudo
web-search 終端機直接 google 搜尋詞 開瀏覽器搜尋
history h 查歷史記錄、hsi 搜尋歷史

sudo 那個是我私心推薦的——下了指令發現需要權限,按兩下 Esc 就搞定,不用重打整行。

安裝第三方外掛

有兩個第三方外掛幾乎是必裝的:zsh-autosuggestionszsh-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-highlighting

2. 加到 .zshrc 的 plugins 清單

plugins=(
  git
  z
  sudo
  zsh-autosuggestions
  zsh-syntax-highlighting
)

注意:zsh-syntax-highlighting 要放在 plugins 清單的最後一個,否則語法高亮可能失效。

3. 重載設定

source ~/.zshrc

zsh-syntax-highlighting 做了什麼

打指令時,有效的指令顯示綠色,打錯的顯示紅色——在按下 Enter 之前就知道有沒有拼錯。

聽起來很小,但你踩過「打了一長串指令按 Enter 才發現第一個字打錯」的痛,就知道這個多有價值。

zsh-autosuggestions 的故事

這個外掛值得獨立一篇來說——它根據歷史記錄即時預測你下一步要打什麼,而且設定空間非常大。

下一篇 03-auto-suggestions 完整深挖:預測策略、補完快捷鍵、效能調校、以及讓它在 ssh 環境也能好好運作的設定。

外掛太多會變慢

這是真實存在的問題——每個外掛在 shell 啟動時都要跑一段 script。裝太多的話,zsh 啟動會開始感覺到延遲。

判斷標準很簡單,跑一下:

time zsh -i -c exit

結果超過 1 秒就該注意了。超過 2 秒肯定是哪個外掛在拖後腿,用二分法逐一停用找出來。

一般來說,外掛清單控制在 10 個以內比較保險。


外掛系統搞清楚了,繼續 03-auto-suggestions:這系列的重頭戲。