iTerm2 搭配 zsh,換掉macOS原生Terminal 筆記

iTerm2 搭配 zsh,換掉macOS原生Terminal 筆記

http://www.iterm2.com/ 下載 iTerm,下載後拖到 “應用程式” 開啟

改變 shell 為 zsh

Mac 預設的 shell 叫做 bash。而 zsh 多了一些比 bash 人性化功能,能客製化的選項也比较多。
在終端機輸入$ chsh -s /bin/zsh即改變為 zsh

安裝 oh-my-zsh

1
$ curl -L http://install.ohmyz.sh | sh

修改 Theme

使用文字編輯器打開 .zshrc
找到 ZSH_THEME="robbyrussell" 行並修改如下

1
2
#ZSH_THEME="robbyrussell" <-- 將這行註解掉
ZSH_THEME="agnoster"

安裝 agnoster 所需字型

由於 agnoster 需要特殊字型。所以必須安裝 patched 過的三個字體:https://gist.github.com/1595572。(開啟網頁點擊Download ZIP下載,雙擊安裝這三個字體。)

下載 SOLARIZED 布景

SOLARIZED 布景是特殊調製的一個背景。可到 https://github.com/altercation/solarized 下載最新版本,下拉點擊Download ZIP下載並解壓縮。

替換掉 iTerm 布景

  • Preference -> Profiles -> Colors -> Color Presets -> Import,載入 iterm2-colors-solarized 目錄下的兩個 itermcolors.
  • Preference -> Profiles -> Colors -> Color Presets,載入 Solarized Dark

替換掉 iTerm 字型

Preference -> Profiles -> Text 換成 Menlo 18 字體,此處字體大小因人而異

替換掉 agnoster 的 theme source code

使用文字編輯器修改 ~/.oh-my-zsh/themes/agnoster.zsh-theme 置換成以下連結內容
https://gist.github.com/agnoster/3712874/raw/c3107c06c04fb42b0ca27b0a81b15854819969c6/agnoster.zsh-theme

客製化裝置名稱

以下客製化皆修改同一檔案,使用文字編輯器修改 ~/.oh-my-zsh/themes/agnoster.zsh-theme
找到以下內容

1
2
3
4
5
6
7
# 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
}

替換為

1
2
3
4
5
6
7
8
9
# 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
}

簡化路徑

找到以下資料

1
2
3
4
5
# Dir: current working directory

prompt_dir() {
prompt_segment blue black '%~'
}

替換為

1
2
3
4
5
# Dir: current working directory

prompt_dir() {
prompt_segment 7 black '%c'
}

加入Ruby version判斷

在檔案頂端或底部加入此段程式碼

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 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"
}

找到以下程式碼並加入 prompt_ruby (原本無此行,自行新增)

1
2
3
4
5
6
7
8
9
10
## Main prompt
build_prompt() {
RETVAL=$?
prompt_status
prompt_context
prompt_dir
prompt_ruby #Added
prompt_git
prompt_end
}

載入美化設定

在檔案第一行加入此行,使用者名稱可自訂喜歡的圖案跟名稱

1
DEFAULT_USER=" Kai"

存檔後輸入指令 source ~/.zshrc 就可以完成介面美化,範例如下圖。


參考資料

iTerm2 + zsh shell on Mac OSX

调配 Terminal :zsh 与 ohmyzsh