Terminal 作為工程師最常使用的幾個工具之一,良好的視覺呈現與操作流程不僅能舒緩眼睛疲勞,更有助於提升工作效率;本篇文章除了紀錄本人在瀏覽數篇文章後所找到的最佳設定途徑,也將針對所選擇工具與過往常用者相比之優勢略作說明
本文之設定教學最適於搭載 iTerm2、zsh 的 Mac 用戶,不過只要是能安裝使用 zsh 之作業系統,皆能參考流程進行設定;若為未安裝 iTerm2 或 zsh 的 Mac 可參考以下流程使用 Hombrew 進行安裝、設定
Mac 用戶想改造 terminal 的必備工具
# brew tap homebrew/cask-cask
# brew cask install iterm2
macOS 在 Catalina 版之後皆以此作為預設 shell
# brew install zsh zsh-completions
並可更改預設 shell 為 zsh
# sudo sh -c "echo $(which zsh) >> /etc/shells"
# chsh -s $(which zsh)
重新啟動 terminal 再執行以下指令,顯示 /bin/zsh 即為更改成功
# echo $SHELL
zim 是一個讓使用者更便利於擴充 shell 功能的設定框架,其初始設定即包含了兩大常用的擴充功能 autosuggestions 和 syntax highlighting
可以使用 curl 進行安裝
# curl -fsSL https://raw.githubusercontent.com/zimfw/install/master/install.zsh | zsh
或使用 wget 進行安裝
# wget -nv -O - https://raw.githubusercontent.com/zimfw/install/master/install.zsh | zsh
powerlevel10k 是一個讓使用者更輕鬆於管理 shell 視覺呈現的設定框架,其便捷的設定流程可以快速打造出理想的介面
於 ~/.zimrc
中添加 zmodule romkatv/powerlevel10k
並執行以下指令
# zimfw install
執行以下指令,並依照提示及自身喜好進行介面設定
# p10k configure
到此為止,terminal 的設定就已經告一段落,不過這邊再提供幾個小撇步
若 Mac 用戶想要修改色系,可以至 Preference > Profiles > Colors
直接修改色碼或由 Color Presets
處匯入搜尋到的 .itermcolors
檔
若想在 VSCode 中也使用相同設定,可以參考這篇
接下來將針對所選擇的 zsh、zim、powerlevel10k 等工具,分析其與過往高使用率的工具相比所具備之優勢
雖然蘋果在 Mac Catalina 版之後,就將預設 shell 由 bash 更改為 zsh,不過這邊還是列出兩者之間三個重要的差異
語法兼容性:在 zsh 中,雖然不完全支援 bash 或是其他常見 shell 的語法,但是可以透過其獨有的仿真模式 (emulation mode) 達到高度甚至近乎完全兼容
語法易用性:zsh 的語法在簡潔性與反饋的可讀性上完勝 bash,變數引用、陣列操作、通用符展開等都是顯而易見的例子
// bash 中的變數引用
# echo "$var"
// zsh 中的變數引用
# echo $var// bash 中的陣列操作
# echo ${array[index]}
// zsh 中的陣列操作
# echo $array[index]// bash 中的通用符展開
# echo *.conf
*.conf
// zsh 中的通用符展開
# echo *.conf
zsh: no matches found: *.conf
功能擴充性:zsh 可以透過 oh-my-zsh、zim 等設定框架進行視覺調整和功能擴充以優化整體使用體驗
oh-my-zsh 和 zim 其實都是很好管理擴充模組的設定框架,但是在執行速度一直是 oh-my-zsh 為人所詬病的地方,而 zim 在速度上面就顯得優秀許多,以下是各個常見框架的速度比較 (數據源自 zim github wiki)
// Execute on Laptop (SSD, Lenovo X1 Carbon Gen 3)
The average startup time for oh-my-zsh is: 0.085321605550050306
The average startup time for zplug is: 0.09151599999999695
The average startup time for prezto is: 0.071930000000000077
The average startup time for zim is: 0.053609999999999602// Execute on Desktop (HDD, AMD 8-core @5GHz)
The average startup time for oh-my-zsh is: 0.10345636363636242
The average startup time for zplug is: 0.11895545454545389
The average startup time for prezto is: 0.093861818181817588
The average startup time for zim is: 0.055364545454545944
powerlevel9k 是成名已久的視覺設定框架,而 powerlevel10k 不僅能透過設定檔一途自訂介面,還提供了 p10k configure
引導設定指令,可以幫助使用者用極短的時間打造出理想的介面
在 terminal 的改造上,不斷有新的工具推陳出新,若是多年後有讀者看到此篇文章,建議可以多嘗試以不同關鍵字進行搜尋以找到最便利、最快速的工具以幫助自己提升工作效率