天天看點

iTerm2 + zsh + Oh My Zsh + Powerlevel10k 打造 Mac 下最強終端

本文首發于我的個人部落格 Sui Xin’s Blog

原文: https://suixinblog.cn/2019/09/beautify-terminal.html

作者: Sui Xin

iTerm2 + zsh + Oh My Zsh + Powerlevel10k 打造 Mac 下最強終端

    • 寫在前面
    • 安裝 iTerm2
    • 安裝 zsh
      • 檢視是否已安裝
      • 安裝
      • 切換為預設 shell
    • 安裝 Oh My Zsh
    • 安裝 Powerlevel10k
    • 安裝 Nerd Font 字型
    • 配置 Powerlevel10k
      • 自動配置腳本
      • 個性化設定
        • 左右欄圖示顯示
        • 左右分隔符号
        • 長路徑折疊
        • 指令成功提示符
        • 顔色配置
    • Oh My Zsh 插件
      • git
      • github
      • autojump
      • zsh-syntax-highlighting
      • zsh-autosuggestions
    • 修改 VSCode 的終端

寫在前面

對于開發人員來說,每天打交道最多的兩類應用即代碼編輯器與終端,一個好用的代碼編輯器和終端可以使效率飛速提升。代碼編輯器有 VSCode,那也應有如此酷炫的終端。

除了 iTerm2,本文同樣适用于大多數 Linux 終端和 WSL (Windows Subsystem for Linux),通過以下步驟可以實作同樣的效果。

先上兩種配置結果:

Classic

Prompt Style:

iTerm2 + zsh + Oh My Zsh + Powerlevel10k 打造 Mac 下最強終端

Rainbow

Prompt Style:

iTerm2 + zsh + Oh My Zsh + Powerlevel10k 打造 Mac 下最強終端

安裝 iTerm2

對于 Linux 和 WSL 使用者,可以略過本步驟。Linux 使用預設的終端,WSL 使用 Windows Terminal 實作相同的效果。

對于 macOS 使用者來說,iTerm2 是一個代替系統自帶終端的好方案,它有很多快捷的小功能可以大幅提高效率,也擁有漂亮且個性化自由度較大的界面。

安裝 zsh

檢視是否已安裝

zsh --version
           

安裝

# macOS
brew install zsh zsh-completions

# Ubuntu
sudo apt-get install zsh

# CentOS
sudo yum -y install zsh
           

切換為預設 shell

chsh -s /bin/zsh
           

安裝 Oh My Zsh

Oh My Zsh 可以做很多的定制化内容,包括豐富的主題與插件,讓你直呼 AMAZING!!

兩種方式選擇一種即可:

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

# 或者使用 wget 指令
sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
           

安裝 Powerlevel10k

Oh My Zsh 有許許多多的主題/外部主題,個人覺得比較好用的是 Powerlevel9k,使用了大約一年的時間,但響應時間卻越變越慢,遂轉到了它的更新版 Powerlevel10k,它可以直接相容 Powerlevel9k 的配置,也可以直接使用它提供的菜單化配置腳本,簡單回答一些問題就可以生成美觀的配置。

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/themes/powerlevel10k
           

克隆下來之後,在 zsh 的配置檔案

~/.zshrc

中設定

ZSH_THEME=powerlevel10k/powerlevel10k

即可。

安裝 Nerd Font 字型

完成上述操作之後,你可能會發現終端出現了亂碼,這是因為你的電腦不支援那麼多字型,需要安裝擴充字型。

Nerd 字型是支援 icon 最多的,可以直接在 nerd-fonts GitHub 或者官網下載下傳 Hack Nerd Font。Powerlevel10k 作者推薦使用 Meslo Nerd Font 字型,但發現在 iTerm2 下 Hack Nerd Font 更好看一點,其他系統還是下載下傳 Meslo Nerd Font 比較保險。

對于 macOS 和 WSL 來說,直接輕按兩下下載下傳的 ttf 檔案即可安裝。對于 Linux 來說,需要将檔案放入指定目錄并重新整理緩存,請看這裡。

安裝之後,對于 iTerm2 來說,在

Preferences-Profiles-Text-Font

設定為對應字型。Windows Terminal 在

settings.json

配置中加入

"fontFace": "MesloLGS NF"

即可。

配置 Powerlevel10k

配置分為兩步,首先使用自動化配置腳本,其次根據個人喜好進行個性化設定。

自動配置腳本

Powerlevel10k 提供了一個配置腳本,運作腳本後隻需回答幾個簡單的問題即可完成配置。

直接輸入

p10k configure

即可進入配置問答界面,完成後會生成一個配置檔案

~/.p10k.zsh

,并且在

~/.zshrc

中自動加入了

# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ -f ~/.p10k.zsh ]] && source ~/.p10k.zsh
           

在配置過程中需要注意的是,

Instant Promt Mode

盡量選擇打開,可以加快終端啟動速度,詳情請見這裡。

個性化設定

在 Powerlevel10k 新生成的配置檔案

~/.p10k.zsh

中根據個人喜好進行個性化設定。

每次修改配置檔案後重新開機終端或者新開一個 tab 即可顯示。

vim

中可以通過

:/str

來執行搜尋,通過

N

n

鍵來跳轉到上一個結果或下一個結果。

左右欄圖示顯示

左欄圖示修改

POWERLEVEL9K_LEFT_PROMPT_ELEMENTS

中内容,右欄圖示修改

POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS

中内容。作者寫了比較詳細的注釋,按需修改即可,也可以調整顯示順序。全部可配置内容請見這裡,也可以自己實作一個。

左右分隔符号

也就是文首第二張圖像火一樣的分隔符号,實際上用到了兩個 Unicode 字元

\uE0C0

\uE0C2

。還有其他形狀的字元,請在 Nerd Font Cheat Sheet 搜尋

E0

# Separator between different-color segments on the left.
typeset -g POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR='\uE0C0'
# Separator between different-color segments on the right.
typeset -g POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR='\uE0C2'
# The right end of left prompt.
typeset -g POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL='\uE0C0'
# The left end of right prompt.
typeset -g POWERLEVEL9K_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='\uE0C2'
           

長路徑折疊

Powerlevel10k 預設将長路徑折疊到隻顯示最上層和最底層,多少有些不友善,可以通過如下進行更改,推薦 2 或者 3。

# Don't shorten this many last directory segments. They are anchors.
typeset -g POWERLEVEL9K_SHORTEN_DIR_LENGTH=2
           

指令成功提示符

指令成功提示符(即右邊欄最左邊的對号)有時候會被遮擋住,可能是一個小 bug 吧,希望作者後續能修複它,現在可以通過在前面加一個空格來避免:

typeset -g POWERLEVEL9K_STATUS_OK_VISUAL_IDENTIFIER_EXPANSION=' ✔'

typeset -g POWERLEVEL9K_STATUS_OK_PIPE_VISUAL_IDENTIFIER_EXPANSION=' ✔'
           

顔色配置

檢視所有可用顔色:

修改目錄顔色為黑色字:

##################################[ dir: current directory ]##################################
# Current directory background color.
# typeset -g POWERLEVEL9K_DIR_BACKGROUND=4
# Default current directory foreground color.
typeset -g POWERLEVEL9K_DIR_FOREGROUND=0

# Color of the shortened directory segments.
typeset -g POWERLEVEL9K_DIR_SHORTENED_FOREGROUND=238
# Color of the anchor directory segments. Anchor segments are never shortened. The first
# segment is always an anchor.
typeset -g POWERLEVEL9K_DIR_ANCHOR_FOREGROUND=0
# Display anchor directory segments in bold.
typeset -g POWERLEVEL9K_DIR_ANCHOR_BOLD=true
           

修改時間顯示塊顔色使得不那麼刺眼:

typeset -g POWERLEVEL9K_TIME_BACKGROUND=255
           

其實在

~/.p10k.zsh

中,所有的顔色幾乎都可以修改,作者注釋也寫的很清楚,可以自己根據喜好配置。

Oh My Zsh 插件

Oh My Zsh 有非常豐富的插件,使用插件可以使得在終端的效率翻倍,下面介紹 5 個我常用的插件。

插件均需在配置檔案

~/.zshrc

中寫出,如下:

plugins=(
  git
  github
  autojump
  zsh-syntax-highlighting
  zsh-autosuggestions
)
           

git

git plugin

提供豐富的 git 别名與幾個有用的函數。

github

github plugin

提供幾個快捷的函數。

autojump

autojump

可以記錄下來你之前

cd

到訪過的所有目錄,下次要去那個目錄時不需要輸入完整的路徑,直接

j somedir

即可到達,甚至那個目标目錄的名稱隻輸入開頭也可以。

安裝方式

zsh-syntax-highlighting

zsh-syntax-highlighting

終端指令文法高亮。

# 克隆
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
# ~/.zshrc 中配置
plugins=(zsh-syntax-highlighting)
           

zsh-autosuggestions

zsh-autosuggestions

終端指令自動推薦,會記錄下來之前使用過的指令,當你輸入開頭時,會暗色提示之前的曆史指令供你選擇,可直接按右方向鍵選中該指令。

# 克隆
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
# ~/.zshrc 中配置
plugins=(zsh-autosuggestions)
           

修改 VSCode 的終端

VSCode 帶的終端界面也可保持一緻,隻需簡單設定字型即可。

打開 VSCode 的設定,搜尋

terminal font

,做如下修改:

iTerm2 + zsh + Oh My Zsh + Powerlevel10k 打造 Mac 下最強終端

繼續閱讀