本文首發(fā)于我的個人博客 Sui Xin’s Blog
原文: https://suixinblog.cn/2019/09/beautify-terminal.html 作者: Sui Xin
寫在前面
對于開發(fā)人員來說,每天打交道最多的兩類應(yīng)用即代碼編輯器與終端盾似,一個好用的代碼編輯器和終端可以使效率飛速提升幽歼。代碼編輯器有 VSCode虏等,那也應(yīng)有如此酷炫的終端登夫。
除了 iTerm2功咒,本文同樣適用于大多數(shù) Linux 終端和 WSL (Windows Subsystem for Linux)跋理,通過以下步驟可以實現(xiàn)同樣的效果震放。
先上兩種配置結(jié)果:
Classic
Prompt Style:
Rainbow
Prompt Style:安裝 iTerm2
對于 Linux 和 WSL 用戶比默,可以略過本步驟幻捏。Linux 使用默認(rèn)的終端,WSL 使用 Windows Terminal 實現(xiàn)相同的效果命咐。
對于 macOS 用戶來說篡九,iTerm2 是一個代替系統(tǒng)自帶終端的好方案,它有很多快捷的小功能可以大幅提高效率醋奠,也擁有漂亮且個性化自由度較大的界面榛臼。
安裝 zsh
查看是否已安裝
zsh --version
安裝
# macOS
brew install zsh zsh-completions
# Ubuntu
sudo apt-get install zsh
# CentOS
sudo yum -y install zsh
切換為默認(rèn) shell
chsh -s /bin/zsh
安裝 Oh My Zsh
Oh My Zsh 可以做很多的定制化內(nèi)容伊佃,包括豐富的主題與插件,讓你直呼 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航揉,使用了大約一年的時間,但響應(yīng)時間卻越變越慢金刁,遂轉(zhuǎn)到了它的更新版 Powerlevel10k帅涂,它可以直接兼容 Powerlevel9k 的配置,也可以直接使用它提供的菜單化配置腳本尤蛮,簡單回答一些問題就可以生成美觀的配置媳友。
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/themes/powerlevel10k
克隆下來之后,在 zsh 的配置文件 ~/.zshrc
中設(shè)置 ZSH_THEME=powerlevel10k/powerlevel10k
即可产捞。
安裝 Nerd Font 字體
完成上述操作之后醇锚,你可能會發(fā)現(xiàn)終端出現(xiàn)了亂碼,這是因為你的電腦不支持那么多字體坯临,需要安裝擴展字體焊唬。
Nerd 字體是支持 icon 最多的,可以直接在 nerd-fonts GitHub 或者官網(wǎng)下載 Hack Nerd Font尿扯。Powerlevel10k 作者推薦使用 Meslo Nerd Font 字體求晶,但發(fā)現(xiàn)在 iTerm2 下 Hack Nerd Font 更好看一點,其他系統(tǒng)還是下載 Meslo Nerd Font 比較保險衷笋。
對于 macOS 和 WSL 來說芳杏,直接雙擊下載的 ttf 文件即可安裝。對于 Linux 來說辟宗,需要將文件放入指定目錄并刷新緩存爵赵,請看這里。
安裝之后泊脐,對于 iTerm2 來說空幻,在 Preferences-Profiles-Text-Font
設(shè)置為對應(yīng)字體。Windows Terminal 在 settings.json
配置中加入 "fontFace": "MesloLGS NF"
即可容客。
配置 Powerlevel10k
配置分為兩步秕铛,首先使用自動化配置腳本,其次根據(jù)個人喜好進行個性化設(shè)置缩挑。
自動配置腳本
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
盡量選擇打開,可以加快終端啟動速度紧阔,詳情請見這里坊罢。
個性化設(shè)置
在 Powerlevel10k 新生成的配置文件 ~/.p10k.zsh
中根據(jù)個人喜好進行個性化設(shè)置。
每次修改配置文件后重啟終端或者新開一個 tab 即可顯示擅耽。
在vim
中可以通過:/str
來執(zhí)行搜索活孩,通過N
或n
鍵來跳轉(zhuǎn)到上一個結(jié)果或下一個結(jié)果。
左右欄圖標(biāo)顯示
左欄圖標(biāo)修改 POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
中內(nèi)容秫筏,右欄圖標(biāo)修改 POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
中內(nèi)容诱鞠。作者寫了比較詳細(xì)的注釋,按需修改即可这敬,也可以調(diào)整顯示順序航夺。全部可配置內(nèi)容請見這里,也可以自己實現(xiàn)一個崔涂。
左右分隔符號
也就是文首第二張圖像火一樣的分隔符號阳掐,實際上用到了兩個 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 默認(rèn)將長路徑折疊到只顯示最上層和最底層,多少有些不方便蝙茶,可以通過如下進行更改艺骂,推薦 2 或者 3。
# Don't shorten this many last directory segments. They are anchors.
typeset -g POWERLEVEL9K_SHORTEN_DIR_LENGTH=2
命令成功提示符
命令成功提示符(即右邊欄最左邊的對號)有時候會被遮擋住隆夯,可能是一個小 bug 吧钳恕,希望作者后續(xù)能修復(fù)它,現(xiàn)在可以通過在前面加一個空格來避免:
typeset -g POWERLEVEL9K_STATUS_OK_VISUAL_IDENTIFIER_EXPANSION=' ?'
typeset -g POWERLEVEL9K_STATUS_OK_PIPE_VISUAL_IDENTIFIER_EXPANSION=' ?'
顏色配置
查看所有可用顏色:
for i in {0..255}; do print -Pn "%K{$i} %k%F{$i}${(l:3::0:)i}%f " ${${(M)$((i%6)):#3}:+$'\n'}; done
修改目錄顏色為黑色字:
##################################[ 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
中蹄衷,所有的顏色幾乎都可以修改忧额,作者注釋也寫的很清楚,可以自己根據(jù)喜好配置愧口。
Oh My Zsh 插件
Oh My Zsh 有非常豐富的插件睦番,使用插件可以使得在終端的效率翻倍,下面介紹 5 個我常用的插件耍属。
插件均需在配置文件 ~/.zshrc
中寫出托嚣,如下:
plugins=(
git
github
autojump
zsh-syntax-highlighting
zsh-autosuggestions
)
git
git plugin
提供豐富的 git 別名與幾個有用的函數(shù)。
github
github plugin
提供幾個快捷的函數(shù)厚骗。
autojump
autojump
可以記錄下來你之前 cd
到訪過的所有目錄注益,下次要去那個目錄時不需要輸入完整的路徑,直接 j somedir
即可到達溯捆,甚至那個目標(biāo)目錄的名稱只輸入開頭也可以。
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
終端命令自動推薦提揍,會記錄下來之前使用過的命令啤月,當(dāng)你輸入開頭時,會暗色提示之前的歷史命令供你選擇劳跃,可直接按右方向鍵選中該命令谎仲。
# 克隆
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
# ~/.zshrc 中配置
plugins=(zsh-autosuggestions)
修改 VSCode 的終端
VSCode 帶的終端界面也可保持一致,只需簡單設(shè)置字體即可刨仑。
打開 VSCode 的設(shè)置郑诺,搜索 terminal font
,做如下修改: