Mac os提前用上 macOS Catalina的Shell Oh My Zsh 配置指南

在月初召開的 WWDC 2019 上,Apple 公佈了下一代 macOS —— macOS Catalina。除了全新的音樂和電視等 app、支持 iPad 作爲外置顯示器等顯而易見的更新,macOS Catalina 還爲專業用戶帶來了一項重大變化 —— Zsh 將取代 Bash,成爲操作系統的默認 Shell。

儘管 Apple 沒有對這一改變作出解釋,但根據 The Verge 的 猜測,這可能與 GPLv3 協議有關。macOS 目前使用的 Bash 3.2 版本基於 GPLv2 協議,但新版 Bash 已經轉移到了 GPLv3 協議。GPLv3 協議對 Apple 這樣的大公司有着更嚴格的限制,這可能是 Apple 不再將 Bash 作爲默認 Shell 的原因。

而相比 Bash 來說,Zsh 也擁有許多更強大的功能:更智能的自動補全、命令選項提示、更豐富的主題,等等。在今秋體驗到 macOS Catalina 正式版之前,我們可以先將 macOS 的默認 Shell 切換到 zsh,熟悉一下新版 Shell 的功能。

本文的目標,就是要幫你打造一個好看、好用的 Zsh 終端。

12175344_959bfe7a3a.png一個漂亮又強大的終端

Zsh 與 Oh My Zsh

Zsh 本體有着強大的功能,但礙於其複雜的配置,對普通用戶而言並不太適合。但是,一個開源項目的出現打破了這一局面 —— 它就是本文的主角:Oh My Zsh。藉助 Oh My Zsh,你只需要進行極爲簡單的安裝配置,就可以用上 Zsh,並享受許多酷炫的功能,下面就讓我們正式開始安裝過程。

安裝 Oh My Zsh

macOS Mojave 已經自帶了 Zsh,所以我們直接安裝 Oh My Zsh。安裝過程極爲簡單,打開終端,執行一行命令即可:

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

在安裝過程中會提示 Do you want to change your default shell to zsh? [Y/n](是否將默認 Shell 切換到 Zsh),按下 Y 並回車即可。隨後會提示 Password for xxx,輸入你的用戶密碼並回車即可。當你看見大大的 Oh my zsh 標誌時就表示 Oh My Zsh 已經安裝成功了。

12175344_a2b8cf4529.png顯示「Oh my zsh」表示安裝成功

基本設置

安裝好 Oh My Zsh 後,使用以下命令打開 Zsh 的設置文件:

vim ~/.zshrc

在 vim 編輯器下,你可以使用方向鍵移動光標,按 i 進入編輯模式,編輯好後按 esc 退出編輯模式,隨後輸入 :wq 並回車即可保存。有關 Vim 的更多使用方法你可以參考 這篇教程。另外,Mac 下的 Vim 默認是沒有顯示行號 & 開啓語法高亮的,你可以參考以下命令打開行號顯示 & 語法高亮:

cp /usr/share/vim/vimrc ~/.vimrc#複製 vim 配置模版echo 'syntax on' >> ~/.vimrc#開啓語法高亮echo 'set nu!' >> ~/.vimrc#開啓行號顯示

Zsh 的配置文件中提供了詳細的註釋,你可以根據註釋修改相關設置,滿足自己的要求。例如,你想關閉 Zsh 的自動更新,則定位到 DISABLE_AUTO_UPDATE 一行,根據前面的註釋,刪除行前的註釋符號 # 即可。

12175344_683e9bf332.png關閉自動更新

保存退出之後,使用以下命令使 Zsh 的配置立即生效:

source ~/.zshrc

設置主題

Oh My Zsh 自帶了大量主題文件。你可以執行以下命令查看自帶的主題:

ls ~/.oh-my-zsh/themes

對於自帶主題的樣式和呈現效果,你可以前往 Oh My Zsh 的 官方 Wiki 查看。

在這裏,我選擇使用 agnoster 作爲我的主題。我們需要通過編輯 zsh 配置文件來修改主題:

vim ~/.zshrc

定位到 ZSH_THEME 一行,將雙引號中的內容修改爲自己選擇的主題名即可。

12175344_86395e542a.png修改主題名

保存退出後,執行以下命令使 zsh 的配置立即生效:

source ~/.zshrc

安裝 Powerline 字體

主題設置完成後,終端中卻出現了亂碼的字符:

12175344_2cc19726b1.png亂碼字符

這是由於我使用的 agnoster 主題中含有特殊字符,需要安裝 Powerline 字體支持才能正常顯示。打開終端,參考以下命令安裝 Powerline 字體:

cd ~/Downloads && git clone https://github.com/powerline/fonts.git#將 Powerline 字體文件下載到「下載」文件夾中cd fonts && ./install.sh#安裝所有 Powerline 字體cd && rm -rf ~/Downloads/fonts#刪除下載的字體文件

隨後,我們按 ⌘, 打開終端偏好設置,在「描述文件 > 文本」中更改字體。

12175344_c36361cd15.png更改字體選項

在彈出的窗口中選擇一款 Powerline 字體(所有可選項請參考 Powerline 的 GitHub 頁面),調整一下字體大小即可。在這裏我選擇了 DejaVu Sans Mono for Powerline 字體(逮蝦戶!),大小設置爲 14 磅。

12175344_eafe4b4a69.png我的字體設置

此時回到終端,發現表示文件目錄的箭頭已經可以正常顯示了:

12175344_07e4c768a7.pngPowerline 字體可以在 agnoster 主題中正常顯示

配置終端顏色方案

主題上的配置至此就差不多了,然而 macOS Mojave 默認終端的黑底白字看起來還是有些不舒服。在這裏,我們不妨使用 Solarized 配色方案來進一步美化終端。首先,使用以下命令下載 Solarized 配色方案:

cd ~/Downloads && git clone git://github.com/altercation/solarized.git#將配色方案下載到「下載」文件夾中

下載完畢後,我們按 ⌘, 打開終端偏好設置,點擊「描述文件 > ⚙︎⌄ > 導入」。

12175344_345ad1f3ae.png導入選項

在彈出的窗口中,定位到 Downloads > solarized > osx-terminal.app-colors-solarized,雙擊 Solarized Dark ansi.terminal 導入暗色的 Solarized 配色方案。

12175344_bca30dee9e.png選擇下載好的 Solarized 配色方案

隨後,我們在描述文件中選中 Solarized Dark ansi,點擊「默認」將其設爲默認配色方案;別忘了把字體改爲 Powerline 字體並調整大小。

12175344_5e9e61fdb9.png別忘記改字體

配色細節修改

重啓一下終端,到這裏,我們漂亮的終端已經基本完成了,但是現在的配色讓人有些看不清字:

12175344_803d07ab43.png有些看不清字

重度強迫症的我肯定不能接受。因此我們按 ⌘, 打開終端偏好設置,點擊「描述文件 > Solarized Dark ansi」,對配色進行進一步的自定義。單擊你想要更改的顏色,在彈出的小窗口中點選拾色器(像吸管一樣的東西)。

12175344_c534b8430f.png拾色器

隨後,你可以參考下圖把顏色一項一項吸過去。這裏我的配置綜合了 iTerm 2 的配色和個人的少量修改。

12175344_18b17cc051.png配色方案參考

還有一項讓我不爽的地方 —— 文件目錄前那個長長的 demo@Stevens-MacBook-Pro。通過修改主題配置文件,我們就能去掉它。使用以下命令編輯 agnoster 主題的配置文件:

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" ]]; thenprompt_segment black default "%(!.%{%F{yellow}%}.)%n@%m"fi}

在 prompt_segment black default "%(!.%{%F{yellow}%}.)%n@%m" 前面加一個註釋符號 #,保存退出,執行 source ~/.zshrc 使配置立即生效即可。

配置插件

Oh My Zsh 支持許多強大的插件,可以實現語法高亮、命令自動補全等功能。你可以執行以下命令查看自帶的插件:

ls ~/.oh-my-zsh/plugins/

對於自帶插件的功能及使用,你可以前往 Oh My Zsh 官方 Wiki 查看。

要啓用某個插件,只需要用 vim ~/.zshrc 編輯 zsh 配置文件,定位到 plugins 一行,在括號中添加需要的插件名稱,以空格分隔。保存退出後,別忘了執行  source ~/.zshrc 使配置立即生效。

12175344_f98e2df604.png修改 plugins 一行的配置啓用插件

我使用的插件git

默認啓用的插件,提供了各種 git 命令的縮寫。其 官方說明 提供了所有縮寫的參考。

z

自帶插件,添加到配置文件中即可啓用,可以幫助你快速跳轉到訪問過的文件夾。具體使用方法請自行 Google 或參考 GitHub 文檔。

zsh-syntax-highlighting

輸入正確的常用命令會以綠色高亮顯示,輸入錯誤則會顯示其他的顏色。使用以下命令安裝:

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

下載完成後,別忘了把 zsh-syntax-highlighting 添加到配置文件的 plugins 中,並執行 source ~/.zshrc 使配置生效。

zsh-autosuggestions

輸入命令時,會用淺色字體給出建議的命令,按 → 即可自動補全。使用以下命令安裝:

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

下載完成後,別忘了把 zsh-autosuggestions 添加到配置文件的 plugins 中,並執行 source ~/.zshrc 使配置生效。

爲了讓提示的字體顏色正確顯示,我們還需要執行:

echo "export TERM=xterm-256color" >> ~/.zshrc#聲明終端類型echo "ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=10'" >> ~/.zshrc#設置建議命令的文字顏色

你可以修改 fg= 後的數字來指定建議命令的文字顏色,數字與顏色的對應表請參考 這裏。

小結

至此,你已經完成了 Oh My Zsh 在 macOS 下的基本配置。現在你獲得了一個更漂亮、更強大的終端,相信這能讓你在終端下進行操作時事半功倍。

更多Mac教程,請關注macdown瞭解。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章