iTerm 美化筆記

時隔二年(變裝),除了這台 MacBook Pro 換了 2017 年款的整修品外,作業系統當然已經是最新的 High Sierra(10.13.4),雖然有些工具程式來來去去,安裝了又移除。但不變的 iTerm 還是唯一的 Terminal 工具,Oh My Zsh 也依舊是預設的 Shell 。

今天網路逛著看到這篇 Show Off Your Config 的文章,不免手癢,就趁著週休稍有空閒時間,又再次來玩玩 iTerm + Zsh 的美化。

在這些所謂的 dot files 裡,蠻中意的是這個「Falkor's Dotfiles -- OhMyZSH Customization」,簡潔耐看又不至於太花俏。大致上來說就是用了:

由於作者已經提供相當完整的文件說明,基本上來說應該是按表操作就可完成才對。不過,真正動手後還是碰到一些小問題,又花了點時間才算完工。也整理了一下過程記錄的筆記備忘。

安裝 iTerm 2

這個很單純,看是要到官網直接下載或是用 Homebrew 的方式安裝均可。

  • 官網連結:iTerm 2
  • Homebrew 安裝:
$ brew cask install iterm2
  • 如果尚未安裝過 Homebrew,執行下列指令先行安裝:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安裝 iTerm 的配色主題

作者是用 Darkside,我個人偏好是 Dracula 以及經典的 Monokai,所以自行更換。將下載的配色主題檔案(例如:Dracula.itermcolors)點按二下後會自動匯入 iTerm 中:

  • Darkside:http://iterm2colorschemes.com。這個網站已經把 130 多個配色主題全部打包,可以直接下載解壓(iTerm 配色主題是在 schemes 子目錄下),另外還貼心地在網站上提供配色主題名稱及載圖,可以邊對照再自行選擇喜歡順眼的套用。
  • Monokai:在上述的主題包中就包含了幾個 Monokai 的主題,個人偏好是 Monokai Soda。
  • Dracula 配色主題官網:Dracula — A dark theme for iTerm and 40+ apps,除了 iTerm 外還有多達40 多個不同工具程式的同色主題。

套用 iTerm 配色主題

開啟功能表 iTerm → Preferences,選擇 Profiles 再點選配色(Colors)頁籤,從右下角的「Color Presets...」下拉選單中選擇剛匯入的配色主題即可套用。

❖ 套用 iTerm 配色主題

下載 dot files 包

使用 git clone 的方式從 Github 下載一份檔案包:

$ git clone https://github.com/Falkor/dotfiles.git ~/.dotfiles.falkor.d

安裝字型

在剛 git clone 下來的檔案包裡就有所需的字型(SourceCodePro+Powerline+Awesome+Regular.ttf)。在 Finder → Go to Folder(或按快捷鍵 ⇧+⌘+G),輸入 ~/.dotfiles.falkor.d/fonts/ 即可開啟檔案夾內容視窗。直接雙擊字型檔開啟 MacOS 字型管理工具,選擇右下角的安裝字型即可:

修改 iTerm 字型

開啟功能表 iTerm → Preferences,選擇 Profiles 再點選文字(Text)頁籤,點擊下方的「Change Font」按鈕選擇剛匯入的字型套用。

❖ 選擇及修改 iTerm 字型

安裝 Oh My Zsh

雖然作者提供的 dot files 包裡就有安裝程式,且會一併自動安裝 Oh My Zsh 及 powerlevel9k theme,算是懶人一鍵安裝包。不過我安裝使用後倒是碰到一些小問題,所以還是決定自行手動安裝設定。首先,執行下列的指令安裝 Oh My Zsh

sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

安裝 powerlevel9k theme

執行下列指令從 GitHub clone powerlevel9k 主題包

git clone --branch next https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k

修改 zshrc 設定

開啟個人家目錄下的 .zshrc 檔編輯:

vi ~/.zshrc

先將原來的 ZSH_THEME="robbyrussell" 註解掉,再加入如下的設定值:

ZSH_THEME="powerlevel9k/powerlevel9k"

## customize zsh theme -- start
# Customization of the https://github.com/bhilburn/powerlevel9k
#
# To use this theme, add 'ZSH_THEME="powerlevel9k/powerlevel9k"' in ~/.zshrc
# Font taken from https://github.com/stefano-meschiari/dotemacs/blob/master/SourceCodePro%2BPowerline%2BAwesome%2BRegular.ttf
#
POWERLEVEL9K_MODE='awesome-patched'

# Disable dir/git icons
POWERLEVEL9K_HOME_ICON=''
POWERLEVEL9K_HOME_SUB_ICON=''
POWERLEVEL9K_FOLDER_ICON=''

DISABLE_AUTO_TITLE="true"

POWERLEVEL9K_VCS_GIT_ICON=''
POWERLEVEL9K_VCS_STAGED_ICON='\u00b1'
POWERLEVEL9K_VCS_UNTRACKED_ICON='\u25CF'
POWERLEVEL9K_VCS_UNSTAGED_ICON='\u00b1'
POWERLEVEL9K_VCS_INCOMING_CHANGES_ICON='\u2193'
POWERLEVEL9K_VCS_OUTGOING_CHANGES_ICON='\u2191'

POWERLEVEL9K_VCS_MODIFIED_BACKGROUND='yellow'
POWERLEVEL9K_VCS_UNTRACKED_BACKGROUND='yellow'
#POWERLEVEL9K_VCS_UNTRACKED_ICON='?'

POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(status os_icon context dir vcs)
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(background_jobs virtualenv rbenv rvm time)

POWERLEVEL9K_SHORTEN_STRATEGY="truncate_middle"
POWERLEVEL9K_SHORTEN_DIR_LENGTH=4

POWERLEVEL9K_TIME_FORMAT="%D{%H:%M \uE868  %d.%m.%y}"

POWERLEVEL9K_STATUS_VERBOSE=false
export DEFAULT_USER="$USER"
## customize zsh theme --End

安裝 Plugin

基本安裝到此已經算是完成了,可以關閉再重開 iTerm 就可以看到套用主題後的效果。不過 zsh 的一個強項就是擁有為數眾多的外掛(Plugins),可以為 zsh 添加各式各樣的附加功能。我自己是會再加裝二個外掛:zsh-completions 以及 zsh-autosuggestions,讓日常使用上更順手便利:

  • zsh-completions
    直接使用 brew 安裝即可:
brew install zsh-completions

安裝完成後螢幕上會有調整設定的說明,依照指示修改 .zshrc,加上這行設定值:

fpath=(/usr/local/share/zsh-completions $fpath)

並執行下面指令重建 zcompdump:

rm -f ~/.zcompdump; compinit

另外,如果在載入 zcompdump 過程中出現類似 "zsh compinit: insecure directories" 這樣的警示訊息,可以再執行下列指令修正權限:

chmod go-w '/usr/local/share'
  • zsh-autosuggestions
    執行下列指令將 zsh-autosuggestions clone 回來
git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions

再次修改 .zshrc,預設的 plugins 設定是只載入 git,在後面多加上 zsh-autosuggestions:

plugins=(
  git zsh-autosuggestions
)

這就是完工後成果的一些擷圖,最後可以用上下左右方向鍵移動游標選擇就是加上 zsh-completions 外掛的功能:

❖ Monokai Soda 主題配色
❖ Dracula 主題配色
❖ Darkside 主題配色