[Zsh] Oh-My-Zsh 筆記
用了很多年的 Bash 簡簡單單、平平實實的功能倒也相安無事,直到前一陣子覺得真應該在命令列顯示 git branch ,改了一下 .bash_profile
,如下:
### show ,user name, server name, path and git branch: user@server Project (develop) ###
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\u@\h \[\033[32m\]\W\[\033[33m\]\$(parse_git_branch)\[\033[00m\] $ "
就可以顯示 user@server Project (develop)
如此的 git branch 了。
本來用得好好的倒也沒事,一但開始改了就沒完沒了,不如也來安裝一下 git 指令自動補齊吧?還是什麼其他的?
看了一下大家要改很大都乾脆直接換上 zsh 大大地強化了功能又有很多外掛。
zsh
zsh 現在最紅的管理套件就是: Oh-My-Zsh
安裝 zsh (macOS)
brew install zsh zsh-completions
安裝 Oh-My-Zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
安裝好,再來就是換 theme 強化一下命令列顯示的樣式及功能,其中有一個很紅 pure 佈景主題,加了許多功能例如指令執行的時間、還 async 查詢了 git repo 是否有 unpushed/unpulled 的 commits 等等,相當厲害!
不過太強大,一次執行橫跨太多行了,還是喜歡跟 bash 一樣輸入區跟資訊在同一行,故想自己從頭建立一個自己的 theme
找到一個 Tjkrich 主題,相當清爽簡單:
ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg[green]%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}⚡"
ZSH_THEME_GIT_PROMPT_CLEAN=""
function prompt_char {
if [ $UID -eq 0 ]; then echo "%{$fg[red]%}#%{$reset_color%}"; else echo $; fi
}
PROMPT='%(?,,%{$fg[red]%}FAIL: $?%{$reset_color%}
)%{$fg[magenta]%}%n%{$reset_color%}@%{$fg[yellow]%}%m%{$reset_color%}: %{$fg_bold[blue]%}%~%{$reset_color%}$(git_prompt_info) %_$(prompt_char) '
RPROMPT='%{$fg[green]%}[%*]%{$reset_color%}'
之後會再配合這篇教學,打造一個自己喜歡的主題。
外掛的部份就再慢慢摸索了。