- 安裝 iTerm2
- 修改 iTerm2 的 color scheme
- 安裝 powerline font
- 安裝 zsh
- 安裝 oh-my-zsh
- 安裝 zsh theme: powerlevel9k
- 設定 powerlevel9k
安裝方式:
brew cask instal iterm2
安裝好以後,打開 iTerm2 檢查 Report Terminal Type 的設定,設定路徑:
Preferences => Profiles => Terminal => Report Terminal Type
設為 xterm-256color
,等等在 terminal 才能看得到漂亮的顏色
這步驟很重要,預設的很醜,想要自己的 command line 看起來賞心悅目就絕對要換掉預設的
設定路徑:Preferences => Profiles => Colors => Color Presets...
剛才下載下來的 iTerm2-Color-Schemes 有很多個資料夾,從 schemes
資料夾裡面選一個喜歡的 color scheme
這邊要注意的是點選了檔案 import 以後並不會生效,還要再去 color preset 點選你剛 import 的 scheme 才會生效
我自己是用 Tomorrow Night Eighties,優點是對比不會太強比較不刺眼,螢幕盯久了不會不舒服,顏色飽和度也適中,看起來質感比較好。
安裝 powerline font
因為我們要用的 theme 會用到很多的特殊 icon,所以 iTerm2 選用的字型必需要支援這種特殊 icon font。這類型的字體統稱為 powerline font(另外還有加強版支援更多特殊 icon 的叫的 nerd font)
沒有安裝的話畫面會長這樣,遇到 icon 會變框框問號
支援 powerline 的字型很多,我推薦 Sauce Code Pro Nerd Font Complete安裝方式推薦直接用 brew 安裝比較快又好管理
安裝指令:
brew cask install
font-sourcecodepro-nerd-font
如果想要裝別的,brew 上面也有很多字型可以挑。
關鍵字是 nerd
:
brew cask search nerd
裝完後,記得修改 iTerm2 字型設定,改成 SauceCodePro Nerd Font 或你自己下載的字型
設定路徑:Preferences => Profiles => Text => Change Font (參考下圖)
zsh 是個取代 bash 的強大 shell,比 bash 好用幾百倍。這篇文章介紹的 command line 設定一定要跑在 zsh。沒用過的一定要試一下
一樣用 homebrew 安裝:
brew install zsh
安裝 oh-my-zsh
上一步裝完 zsh 後,就可以開始調整我們想要的 command line 外觀設定了,但是原始的 zsh 因為設定太難搞,所以多年前剛出現的時候沒有受到太多關注,直到有人寫了一套叫 oh-my-zsh 的 framework 來幫助大家使用 zsh,zsh 才火了起來。現在幾乎所有 zsh 好用的工具都有支援 oh-my-zsh,所以當然是要裝這東西
安裝指令:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
註:這會直接執行 oh-my-zsh 的 install.sh
有疑慮的人可以先稍微研究一下 oh-my-zsh github 上的 install.sh
,覺得放心再執行
執行完以後如果沒有出現什麼錯誤訊息就代表成功了,同時會發現多了 oh-my-zsh 的資料夾 ~/.oh-my-zsh
剛裝完 oh-my-zsh 以後,預設是使用內建的 theme robbyrussell,多了 git 資訊,顏色也看起來比原生 bash 好一些:
切換內建的 theme 很簡單,直接修改你的 ~/.zshrc ,把原本 ZSH_THEME=”robbyrussell”
改成你想要的:
ZSH_THEME=”
agnoster” # 試試看把 robbyrussell 改成
agnoster
任何的 zsh 設定修改過後,還要執行以下指令才會生效
exec $SHELL
powerlevel9k 不只是像上面的示範圖顯示一些基本的資訊,還可以做到很屌的事情,比如像下圖那樣,顯示 WiFi 訊號強度、筆電電池電力、CPU loading、system free memory 等等資訊在 command line
- powerlevel9k 不是 oh-my-zsh 內建的 theme ,必須另外下載
指令:
git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k
2. 編輯你的 ~/.zshrc
,把 ZSH_THEME 設為 powerlevel9k,並設定要顯示哪些東西在 command line 上:
ZSH_THEME="powerlevel9k/powerlevel9k"
# command line 左邊想顯示的內容
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir) # <= left prompt 設了 "dir"
# command line 右邊想顯示的內容
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(time) # <= right prompt 設了 "time"
POWERLEVEL9K_RAM_ELEMENTS="ram_free"
上面的例子我們把左邊設了一個 dir
,右邊設了 time
,代表左邊想顯示當前資料夾路徑,右邊顯示時間
設定完後 command line 看起來會像這樣 (記得執行 exec $SHELL
,設定才會生效):
當你進入了一個沒有寫入權限的資料夾時還可以給你提醒:
# 加上 "dir_writable"
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir dir_writable vcs)
我自己習慣左側的設定放一些常用基本資訊
右邊放一些好用但不是每次下指令都要看的東西
command line 右邊的設定放在 POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
例如顯示上一個指令的 return code:
# 加上 "status" 顯示上一個指令的 return code:
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status time)
如果指令沒出錯,linux return code 為 0 時會有個綠色小勾勾:
如果打了錯誤指令會出現相對應的 return code,並且用紅色底色提醒你
還可以顯示目前電腦的 free memory:
# 加上 ram,顯示目前的 free memory
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status ram time)
加上 CPU load average:
# 加上 load 顯示 CPU 忙碌程度
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status ram load time)
顯示電量:
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(battery)
不過有些東西中看不中用,放太多東西也會讓 command line 反應變慢,試了各種設定一陣子後,只留下了一些我覺得比較有用的,給大家參考:
# 左側
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(context dir dir_writable vcs vi_mode)
# 右側
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status background_jobs history ram load time)
# 若當前登入的帳號為你的帳號 xxx,就不用特別顯示出來
DEFAULT_USER="xxx"
ref : https://medium.com/statementdog-engineering/prettify-your-zsh-command-line-prompt-3ca2acc967f