我的 Shell 環境設定:zsh + zim + powerlevel10k + z

基本上是因為我推薦 @jkgtw,所以他才寫這篇文章的,大致上教學差不多,但是我自己有自己的設定,所以補充一下方便以後自己記得。

現在一般使用 zsh 通常最會搭配的 framework 就是 oh-my-zsh 了,但是 oh-my-zsh 比較詬病的一點就是速度慢,因為功能實在很強大,但是這些功能一般使用可能根本很少用到,像是 oh-my-zsh 裡面有一大堆 alias,網路上教你安裝的教學根本不會提到這些 alias,都是教你裝裝主題變漂亮就結束了。

所以我現在就改用 zim,基本上 oh-my-zsh 最常用的那些東西 zim 幾乎都有,可以看作是一個麻雀雖小,五臟俱全的 framework。當然,很多高手是直接手動安裝 plugin 跟 theme 的,如果您是此類高手,可以直接關閉瀏覽器視窗,因為自己手動安裝肯定自訂性更大。

主題部分我用 Powerlevel10k,顏色則是 Dracula,這篇文章會一併說明。

 

Zimfw

官網在此,此外官網附上了 zim 跟其他 framework 的速度比較

安裝 zim 其實非常簡單,只要一行指令就行了:

curl -fsSL https://raw.githubusercontent.com/zimfw/install/master/install.zsh | zsh

macOS 10.15 以上預設就是使用 zsh 了,10.15 以下的話應該是有 zsh 只是非預設而已。但 macOS 的 zsh 可能版本比較舊一點,如果在意的話可以使用 Homebrew 安裝:

brew install zsh

 

Powerlevel10k

Powerlevel10k 是 Powerlevel9k 的改版,同樣提升了速度,並且透過一系列的選項直接幫你弄好許多 Powerlevel9k 的設定。

搭配 zim 的安裝方法很簡單,打開 ~/.zimrc,新增 zmodule romkatv/powerlevel10k,再回到終端機輸入 zimfw install ,安裝完成後重開終端機即可。

不過,在重開終端機之前,我會建議先到 Powerlevel10k 網站下載 MesloLGS NF 一系列的字體,手動安裝並套用到 iTerm 2,因為 Powerlevel10k 的自動安裝有問題,常常會明明安裝了但找不到字體,手動安裝就不會出錯。字體搞定後再打開終端機,Powerlevel10k 會問你一系列的問題,然後一步一步跟著設定即可。

如果要手動修改,可以修改 ~/.p10k 這個檔案。我自己修改過一些設定,可以在這邊下載,但你不一定喜歡我的設定就是了。

順帶一提,Powerlevel9k 的出處是七龍珠的梗:

  • 2024/10 更新:現在不用了,直接用 Warp 就好,省事好用

 

Z

z 是一個好用的快速移動目錄外掛,例如我今天原本到一個目錄叫做 ~/Library/Application\ Support/Google/Chrome/,然後因為這個目錄每次要進來就很麻煩要輸入一長串,通常這時候一般做法是設定 alias 就可以了,不過安裝 z 之後,可以輸入 z 關鍵字 的指令,他會依照你常去的目錄的權重自動移動到最有可能的目錄。

以上面例子來說,就是只要你使用終端機進入過該目錄,下次輸入 z Chrome 即可快速跳到該目錄。

安裝此外掛方式跟上面差不多,打開 ~/.zimrc,新增 zmodule agkozak/zsh-z,再回到終端機輸入 zimfw install 即可。

  • 2024/10 更新:原本使用 zmodule rupa/z,現在改用 zmodule agkozak/zsh-z(原生 zsh 移植版本)

 

Dracula

我喜歡的顏色設定,在這邊下載

  • 2024/10 更新:現在直接用 Warp 了,直接選裡面的主題就好,不用再裝。

全部弄好之後長這樣:

7 則留言

  1. 「Julian Lai」的個人頭像
    Julian Lai

    請問你的 zsh 有辦法在套件管理員中自動補完套件名稱嗎?像我的 Linux 是 sudo pacman -S <套件名稱>,他完全做不到

  2. 「Hiraku」的個人頭像
    Hiraku

    我的也做不到,你要看有沒有外掛套件支援這個功能才對。

  3. 「Algenta」的個人頭像
    Algenta

    我安装了zim后 使用zimfw命令时提示command not found

    1. 「Hiraku」的個人頭像
      Hiraku

      開一個新的 terminal session

發佈留言