摘要

當初玩 Mac 從一開始很痛苦的 bash ,到了換了好像超好用的 fish (friendly interactive shell) 可以參考一下 [TIL] Note: about change your shell from bash to fish

當然,之後也有想要換到 zsh 參考這篇 [TIL] Change fish shell theme with nerd font 但是又遲遲不敢換.

不過今天總算發生了重要的問題. 公司一堆 Operation 相關的 Makefile 竟然完全死在 fish 上面. GG

只好認真來換… zsh

基本的 zsh 配備

當然要先看看這篇我認為超適合當 zsh (還有 oh-my-zsh) 的推坑文超簡單!十分鐘打造漂亮又好用的 zsh command line 環境 基本流程就依照這篇就好,補充一些:

  • iterm2 換字型到 Sauce Code Pro Nerd Font Complete 如果你字體大小是在 12 很容易卡死(hang) . 就得要清除所有 iterm2 的設定 · 建議要先切換字體大小到 14 再換字型.
defaults delete com.googlecode.iterm2
  • iTerm2 本身對於各個 Shell 都有 integration ,可以讓你使用起來更方便.
curl -L https://iterm2.com/shell_integration/zsh \
  -o ~/.iterm2_shell_integration.zsh

source ~/.iterm2_shell_integration.zsh
  • POWERLEVEL9K 雖然很棒,但是不是太多功能需要.這裡列出我使用的功能
export TERM="xterm-256color"


POWERLEVEL9K_MODE='nerdfont-complete'
ZSH_THEME="powerlevel9k/powerlevel9k"
# command line 左邊想顯示的內容
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir vcs) 
# command line 右邊想顯示的內容
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(kubecontext) 

POWERLEVEL9K_SHORTEN_DIR_LENGTH=1
POWERLEVEL9K_SHORTEN_DELIMITER=""
POWERLEVEL9K_SHORTEN_STRATEGY="truncate_from_right"

進階設定

這裡介紹幾個好用 plugin ,可以幫助大家快速(無痛?)切換到 zsh

plugins=(
#git 可以有一些快捷鍵 ggl ...
  git
# 自動補全   
  zsh-completions
  gitfast
# 解壓縮用
  extract
# z: 可以快速並且支援模糊切換目錄 ex: z docume <tab>
  z
# 讓你喚回 fish 漂亮的顏色
  zsh-syntax-highlighting
# 就像 fish 一樣,打到一半自動建議你
  zsh-autosuggestions
)

相關習慣變更

  • Quick Search History:
    • 先按下 “Ctrl + R” 再打你需要的…
  • Auto-Completed:
    • 先打出你需要的 ex: gcloud 然後再按下 (up) 鍵
  • 相關路徑與設定
    • GOBIN, GOPATH
    • Heroku path
    • Gcloud path (reinstall again)
    • cocoa pods PATH
    • LIBRARY_PATH

其他就還好,大概就是之前被 fish 強制修改的習慣.

  • ; —> &&
  • $(VAR) —> (VAR)
  • env ABC=edc —> ABC=edc

VSCode integrated terminal 也要改

其實剛換過去,還沒有感覺到有太多的不同.不過 VSCode 一打開就發現有個嚴重的問題, ` vscode 還在使用 fish shell`

趕緊打開 user.setting (cmd+,) ,然後加入以下的修改

    "terminal.integrated.shell.osx": "zsh",
    "terminal.integrated.cursorBlinking": true,
    "terminal.integrated.fontSize": 12,

Reference


Buy Me A Coffee

Evan

Attitude is everything