三分鐘讓 terminal 極度方便又美觀 - oh-my-zsh



前言

  • mac 已內建 zsh,再配合強大的 oh-my-zsh 可以讓 command line 看起來無限順心😂
  • 一開始只是要找 git alias 的套件,這麼晚 (2020) 才發現鼎鼎大名的 oh-my-zsh
  • 以前會配合 powerlevel9k (現在是 10kpowerlevel10k) 用得很開心,加上各種 icon 跟色塊。前兩個月換電腦,反而覺得現在用內建基本款就好了,不用太花俏。所以本篇紀錄超簡易設定,文末附上其他參考 blog。



設定

安裝

安裝 oh-my-zsh,擇一執行即可:

1
2
3
4
5
6
7
8
9
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"


# wget
sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"


# fetch
sh -c "$(fetch -o - https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)

決定 theme

設定 theme,github repo 上面有超多 theme,挑一個就好。

因為我想讓 git 的 branch 資訊出現在右邊,最後我挑 alanpeabody

~/.zshrc 中改掉預設的 theme:

1
vim ~/.zshrc


修改 theme 設定檔

修改 theme 的內容,因為:

  • 因為深色背景,用它內建的 blue 資料夾看起來不明顯;改成黃色。
  • 如果是 macbook 就不需要顯示全部的路徑,會佔用太多版面,可以考慮 %1~ 或是 %2~
1
2
3
4
5
# 只顯示一層資料夾
local pwd='%{$fg[yellow]%}%1~%{$reset_color%}'

# 只顯示兩層資料夾
local pwd='%{$fg[yellow]%}%2~%{$reset_color%}'
  • 但如果是 iMac 螢幕較寬就可以維持預設 (%~)。
vim ~/.oh-my-zsh/themes/alanpeabody.zsh-theme

改成這樣:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
local user='%{$fg[magenta]%}➜%{$reset_color%}'
local pwd='%{$fg[yellow]%}%1~%{$reset_color%}'
local return_code='%(?..%{$fg[red]%}%? ↵%{$reset_color%})'
local git_branch='$(git_prompt_status)%{$reset_color%}$(git_prompt_info)%{$reset_color%}'

ZSH_THEME_RVM_PROMPT_OPTIONS="i v g"
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[green]%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_DIRTY=""
ZSH_THEME_GIT_PROMPT_CLEAN=""

ZSH_THEME_GIT_PROMPT_ADDED="%{$fg[green]%} ✚"
ZSH_THEME_GIT_PROMPT_MODIFIED="%{$fg[blue]%} ✹"
ZSH_THEME_GIT_PROMPT_DELETED="%{$fg[red]%} ✖"
ZSH_THEME_GIT_PROMPT_RENAMED="%{$fg[magenta]%} ➜"
ZSH_THEME_GIT_PROMPT_UNMERGED="%{$fg[yellow]%} ═"
ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[cyan]%} ✭"

ZSH_THEME_RUBY_PROMPT_PREFIX="%{$fg[green]%}‹"
ZSH_THEME_RUBY_PROMPT_SUFFIX="›%{$reset_color%}"

PROMPT="${user} ${pwd}$ "
RPROMPT="${return_code} ${git_branch} \$(ruby_prompt_info)"

差異:


Note

  • %{fg[yellow]%}:代表從此開始文字顏色是用黃色,可以拆成三部分理解:%{fg[yellow]%};不過總不能從此都只顯示黃色,所以後面會需要再 reset (%{reset_color]%}) 回來。
  • %n%m :分別代表 username 與 hostname (直到第一個點 dot,也可以算是 short name)
  • pwd:如果是 %1~ 代表只顯示一層資料夾、%2~ 只顯示兩層,以此類推。

因為比較常用 iMac,我 pwd 就保留 %~,最後像這樣:

(順便放上 https://github.com/ktlast/glance-tw-stock)

這樣就完成了,如果要用更多神器,例如 powerlevel10k,參考下方 REF。




REF

oh-my-zsh


Special shell variables


主題 StackJimmy 設計