跟着教程走了一遍,十分钟左右,体验确实提高了很多
本文由 简悦 SimpRead 转码, 原文地址 medium.com
](不止數據|Not Only Data - Medium)
有鑑於之前每次為了重置我的 iTerms 2 後,總是要花一堆時間來重新設置,而每一次的設置又會花了我不少時間。另外一個原因,則是 iTerms 2 + zsh 的組合真的是讓我用起來愛不釋手啊!
因此,我這裡就利用一些時間,寫一篇文章完整記錄可能會用到的資源,也幫助想要一站式的完整設定 MacOS 的 Terminal 的各位玩家,能夠看完本文就能完整設定囉!
那我們就開始吧!
安裝 iTerm 2
$ brew install iterm2
安裝完 iTerm 2 後,打開 iTerm 2 的介面,並到下列位置設定終端機主題。
Preferences → Profiles → Colors → Color Presets
我自己是偏好 Solarized Dark + 調亮 Foreground(字體顏色,就在旁邊)到 70% 的亮度,看起來特別舒服。
如果對其他主題有興趣,可以參考 Scheme,使用方法則可看 Iterm2 and Z shell 設定。
安裝 zsh
接下來便是本篇的主角 zsh 的相關設定,我就是在這裡浪費一堆時間的… 好了廢話不多說,馬上讓我們開始吧!
brew install zsh
PS:透過 brew 安裝相關的套件,才不容易在管理套件時找不到套件。
安裝 Oh-my-zsh
我之前曾經不信邪,想要自己去挑戰 zsh 自行客製化,後來弄到崩潰決定直接放棄 xD 原來 zsh 能設定的內容實在是太多了,多到光是連前面的初始化,都讓人選的滿頭問號。
還好,有了 Oh-my-zsh 這個偉大的套件,才有辦法讓我們輕輕鬆鬆的使用 zsh 的種種好處。
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
在安裝 Oh-my-zsh 後他會問你是否要默認 zsh 為預設 shell,大大方方的按下 y + enter,就正式進入 Oh-my-zsh 的世界啦!
如果當初忘記轉換的玩家,可以在安裝完後輸入下列指令轉換。
$ sudo sh -c "echo $(which zsh) >> /etc/shells"$ chsh -s $(which zsh)
如果想要轉換回來也可以,記得要重新啟動 iTerm 2 或是重開一個新視窗:
$ chsh -s /bin/bash# 之後轉換回 zsh
$ chsh -s /usr/loacl/bin/zsh
資料補充:
- 用
Homebrew
安裝的Zsh
位置在/usr/local/bin/zsh
,而系統安裝的則會在/bin/zsh
。
為 Oh-my-zsh 設定主題
下面有大量的內置主題可以參考,如果有喜歡的可以去 .zshrc
替換。
當然,最多人用而且也是我最愛的套件,仍然莫過於 agnoster
!那要如何更改主題呢?其實只需要去 zshrc 的設定檔改個主題就好囉!
$ vim ~/.zshrc
.zshrc 檔案內部
進來檔案後,按下 i 鍵
更改以下指令 ZSH_THEME=”robbyrussell”
變成:
ZSH_THEME="agnoster"
在編輯完之後,按下 Esc
再按下 shift
+:
觸發檔案編輯模式,打上 wq
(用於寫入改變並離開檔案)。
隨後,可以選擇開新的一個終端頁面,或是執行:
$ exec $SHELL
此時我們會發現主題已經成功轉換了,但確有部分符號顯示不出來?!
怎麼辦,其實只要換個字形就可以囉!
更換更強力的字形 Powerline
其實只要能支援 Powerline 的字型,都能夠正確顯示這些圖示。下列頁面展示了所有可以被使用的 Powerline Font 供大家使用。
我自己是最推薦 Meslo Dotted for Powerline 的字體(size 16 px),字型不會過扁且不容易造成閱讀上的壓力。當然,網路上也有很多人推薦 Source Code Pro for Powerline,喜歡何者就見仁見智囉。
附上官方推薦的字體:
# 必須先執行這行,才能用 homebrew 安裝字型。執行過的人可以跳過
brew tap homebrew/cask-fonts# 安裝指令
brew cask install font-meslo-for-powerline# 其他字型也可以在 brew 上搜尋 nerd
brew search nerd
下載後記得先去 MacOS 內建的 Font Book 看看字型是否有衝突,如果有舊按自動排除問題,再來則是到 iTerm 2 裡更改字體。
Preferences → Profiles → Text → Font → Meslo Dotted for Powerline
接下來即可正常執行:
更換字型後設定 Anaconda 啟動
我自己重灌有一部份是為了要處理 Anaconda 的一些怪問題,但重灌後的啟動碼著實讓我苦惱了好久啊!我就在這裡留一個備份,給有需要的人使用吧!
PS:一般來說安裝後的指令,都會放在 .bashrc
裡面,因此想要直接複製的讀者可以去跟目錄裡找找看呦!
只要直接把下列指令貼在 ~/.zshrc 裡就好囉!記得要把 USERNAME 更改成自己的使用者名字。
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$(CONDA_REPORT_ERRORS=false '/Users/USERNAME/opt/anaconda3/bin/conda' shell.bash hook 2> /dev/null)"
if [ $? -eq 0 ]; then
\eval "$__conda_setup"
else
if [ -f "/Users/USERNAME/opt/anaconda3/etc/profile.d/conda.sh" ]; then
. "/Users/USERNAME/opt/anaconda3/etc/profile.d/conda.sh"
CONDA_CHANGEPS1=false conda activate base
else
\export PATH="/Users/USERNAME/opt/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda init <<<
Powerlevel9k
Agnoster 的超級超級加強版,同樣屬於 zsh theme 的套件,但不屬於預設主題,必須另外下載。
安裝 Powerlevel9k 主題:
git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k
啟用主題:
# 到 .zshrc 裡更改主題設定
ZSH_THEME="powerlevel9k/powerlevel9k"
設定 Powerlevel9k 顯示狀態:
在 ~/.zshrc 裡加入下方兩行設定值就可以使用囉!
# 左邊顯示的狀態
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(context dir vcs)# 右邊顯示的狀態
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status root_indicator background_jobs history time)
附註:最近作者又看到 powerlevel 的進化版 10k 囉!他可以完全接受 9k 的所有設定,因此不需要特別調整即可使用!
# 安裝到 ohmyZsh 的資料夾裡
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
我最後選擇幾個比較實用的資訊顯示:
# 設定主題
ZSH_THEME="powerlevel9k/powerlevel9k"# Powerlevel9k icon 顯示
POWERLEVEL9K_MODE='nerdfont-complete'# Powerlevel9k command line 左邊想顯示的內容
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(virtualenv dir dir_writable vcs vi_mode) # <= left prompt 設了 "dir"# Powerlevel9k command line 右邊想顯示的內容
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status ram) # <= right prompt 設了 "status" 顯示執行正確與否
Zsh-autosuggestions
能夠自動幫你把過去輸入過的資訊提示出來,真的真的真的省了很多輸入的時間啊啊啊~大推這個套件,用過後就回不去了 xD
# 下載套件至 Zsh 的 plugin 裡
$ git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions# 啟用套件(在 ~/.zshrc 裡)
plugins=(zsh-autosuggestions)
如果對於預設的提示字體顏色覺得太深,可以到下列位置修改:
~/.oh-my-zsh/custom/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
調整顯示顏色:
# 替換調 fg=8 換成其他顏色
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=8'
fg=8
的數字是 0 ~ 255,或者直接填寫常用的 8 種顏色文字 black, red, green, yellow, blue, magenta, cyan and white
我自己是習慣使用 fg=30
的色票,不會太搶眼卻又不至於看不到文字。
zsh-syntax-highlighting
不同的指令會自動幫你上色,讓你知道自己是不是輸入正確的指令。
# 下載套件
$ git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting# 啟用套件
plugins=(git zsh-autosuggestions zsh-syntax-highlighting)
Navi
命令行記錄套件,能夠一站式的紀錄所有過去的指令,還有內建一堆已經建立好的快捷!
安裝指令:
brew install navi
Tmux
複開終端機的好用工具!
雖然跟 iTerms2 的頁籤切換很像,但如果想要在單一畫面裡控制內容,還是非常實用喔!
安裝指令:
brew install tmux
Autojump
跟上述兩個套件的啟動方式不太一樣,需要到 brew 安裝來啟用 Autojump。我自己用開啟資料夾的功能。
他雖然能夠順利開啟資料夾,但是沒辦法開到正確的資料夾,讓我懷疑是不是我的設定有問題… 當然各位厲害的 Zsh 玩家也可以自己試試看,如果能順利使用務必跟筆者分享一下~
# 使用 brew 安裝
$ brew install autojump# 把設定加入 .zshrc
[ -f $(brew --prefix)/etc/profile.d/autojump.sh ] && . $(brew --prefix)/etc/profile.d/autojump.sh# 重新讀取zshrc
$ source .zshrc# 啟用套件
plugins=(autojump)
**補充:**如果想要讓 Autojump 能夠順利執行,一開始必須先以 cd
指令來切換資料夾,此時 Autojump 就會有切換紀錄。之後就能夠以 j + keyword
來快速切換資料夾囉!
# 如果之前曾 cd 到 Document 資料夾裡,下次 Autojump 就會順利切換到 Document 裡囉!$ j Doc
這樣所有的設定就都完成啦~可以開始享用你的 Oh-my-zsh + iTerm 2 囉!