zsh是一種Shell,與bash, tesh等等shell很像,不過他多了一些很方便的人性化功能,例如在tab的時候會幫你找出相似的路徑或檔案,可以直接選取來幫你補上命令列,如果遇到指令的錯誤還會嘗試幫你糾正。
不過他最厲害的是有oh-my-zsh的plugin可以使用,可以替代很多原本會寫的設定,以外掛的方式掛進去,而且還有很多theme可以選,以及客製化。
這篇文章就以Mac OSX 來作安裝說明,畢竟Debian/Ubuntu Linux不太一樣,需要自行安裝zsh。
使用iTerm2替換掉Mac原生terminal
一般來說用Mac進行程式開發的設計師很少使用原生的Terminal進行開發,多半都是使用iTerm2,並自行設定配色與字體,安裝方式很簡單,到 http://www.iterm2.com/下載後拖拉到應用程式,並打開就可以使用,接下來我們在搭配zsh來使用,就可以做出更強大又美觀的Terminal來開發囉。
1.Install zsh
chsh -s /bin/zsh
2.Install oh-my-zsh
curl -L http://install.ohmyz.sh | sh
3.修改theme
#ZSH_THEME="robbyrussell" <-- 將這行註解掉
ZSH_THEME="agnoster"
4.安裝 agnoster 所需字型
由於 agnoster 需要特殊字型。 所以必須安裝 patched 過的三個字體:https://gist.github.com/1595572。(下載後雙擊安裝這三個字體。)
5. 安裝 SOLARIZED 布景
SOLARIZED 布景是特殊調製的一個背景。按此 下載 最新版本。
解壓縮後裡面有很多布景。
6.替換掉 iTerm 布景
Preference
->Profiles
->Colors
->Load Presets
->Import
,載入iterm2-colors-solarized
目錄下的兩個 itermcolorsPreference
->Profiles
->Colors
->Load Presets
,載入Solarized Dark
。
7.替換掉 iTerm 字型
Preference
->Profiles
->Text
換成 Menlo 14 字體
8.替換掉 agnoster 的 theme source code
修改 ~/.oh-my-zsh/themes/agnoster.zsh-theme 換成以下內容
9.客製化裝置名稱
打開檔案,編輯他
vim ~/.oh-my-zsh/themes/agnoster.zsh-theme
找到以下內容
# Context: user@hostname (who am I and where am I)
prompt_context() {
if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
prompt_segment black default "%(!.%{%F{yellow}%}.)$USER@%m"
fi
}
修改為
# Context: user@hostname (who am I and where am I)
prompt_context() {
if [ $DEFAULT_USER ]; then
prompt_segment blue 7 "%(!.%{%F{yellow}%}.)$DEFAULT_USER"
elif [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
prompt_segment blue 7 "%(!.%{%F{yellow}%}.)$USER@%m"
fi
}
11.簡化路徑
找到以下
# Dir: current working directory
prompt_dir() {
prompt_segment blue black '%~'
}
替換成
# Dir: current working directory
prompt_dir() {
prompt_segment 7 black '%c'
}
12. 加入Ruby version判斷
vim ~/.oh-my-zsh/themes/agnoster.zsh-theme
檔案內任意新增以下程式碼
# Ruby version
prompt_ruby() {
grep 'rails' 'Gemfile' >/dev/null 2>&1
if [ $? -eq 0 ]; then
local ruby_version=''
if which rvm-prompt &> /dev/null; then
ruby_version="$(rvm-prompt i v g)"
else
if which rbenv &> /dev/null; then
ruby_version="$(rbenv version | sed -e "s/ (set.*$//")"
fi
fi
prompt_segment red default "$ruby_version"
fi
}
已經寫好RVM的ruby version block就將其內容載入
找到以下並加入prompt_ruby
Main prompt
build_prompt() {
RETVAL=$?
prompt_status
prompt_context
prompt_dir
prompt_ruby
prompt_git
prompt_end
}
13.載入美化設定
一樣去編輯剛剛的檔案
vim ~/.oh-my-zsh/themes/agnoster.zsh-theme
在第一行加入以下內容
DEFAULT_USER="Nic"
之後再重新 source ~/.zshrc,就可以完成介面美化囉。