如何配置一個(gè)高效、漂亮、愛(ài)不釋手的終端?

工欲善其事,必先配置其 terminal。
程序員和電腦進(jìn)行交互最多的場(chǎng)合就是 terminal 了,這也是一個(gè)高頻要素,如果有一個(gè)好用且好看的 terminal,那會(huì)直接改善你的生活質(zhì)量。本文分享如何配置一個(gè)高效、好用、漂亮的終端。方法適用于 MacOS 和 Linux,如果你是 Winows,可以嘗試一下 Linux 子系統(tǒng)[1]。
用到的工具
zsh、oh-my-zsh、powerlevel10k,如果你看到這幾個(gè)非常熟悉,并正在使用,可以不需要往下看了。
先解釋下這三個(gè)工具。
zsh
Linux 環(huán)境下的 shell 終端有 bash,ksh,tcsh,zsh,fish 等。使用人數(shù)排第一的自然是 bash,因?yàn)榇蟛糠值?Linux 發(fā)行版默認(rèn)的就是 bash,使用人數(shù)排第二的就是 zsh。為什么用 zsh 呢?因?yàn)橄啾扔谀J(rèn)的 bash,zsh 有更多的自定義選項(xiàng),并支持?jǐn)U展。因此 zsh 可以實(shí)現(xiàn)更強(qiáng)大的命令補(bǔ)全,命令高亮等一系列酷炫功能。
oh-my-zsh
默認(rèn)的 zsh 配置有點(diǎn)麻煩。因此一個(gè)叫 robbyrussel 的用戶(hù)在 GitHub 上制作了一個(gè)配置文件 oh-my-zsh[2],這是目前為止最流行的 zsh 配置。
powerlevel10k
oh-my-zsh 有上百個(gè)自帶主題,以及許許多多的外部主題,但使用人數(shù)最多,評(píng)價(jià)最好的主題,當(dāng)屬 powerlevel10k,它兼容 powerlevel9k,在性能上有 10-100 倍的提升,GitHub 上有 20.8 k 的??。
配置步驟
1、把 oh-my-zsh 項(xiàng)目 Clone 下來(lái):
git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
2、復(fù)制 .zshrc
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
3、更改你的默認(rèn) Shell
MacOS 下默認(rèn)已經(jīng)安裝了zsh,可以直接使用:
chsh -s /bin/zsh
現(xiàn)在就可以看到 terminal 已經(jīng)有所變化:

Ubuntu 默認(rèn)好像都沒(méi)有安裝 zsh,需要安裝:
# 安裝zsh
sudo apt-get install zsh
# 終端輸入命令,然后輸入密碼即可將zsh切換成默認(rèn)shell
chsh -s /bin/zsh
4、安裝 powerlevel10k
安裝方法可以查看 powerlevel10k 官方文檔[3],如果你電腦上安裝了 git ,直接 clone 到 oh-my-zsh 的插件目錄內(nèi)部即可,如下:
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
中國(guó)大陸用戶(hù)可以使用 gitee.com 上的官方鏡像加速下載
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
為了更好的在終端顯示文件夾、表情等圖標(biāo),官方推薦你安裝字體[4],訪問(wèn)文末鏈接下載字體,雙擊即可安裝。如果是 MacOS 且使用 Iterm2,執(zhí)行 p10k configure,選擇 yes 可以自動(dòng)安裝推薦的字體。
5、配置
修改 ~/.zshrc,添加 powerlevel10k 主題。
ZSH_THEME="powerlevel10k/powerlevel10k"

重啟終端,然后鍵入 p10k configure 來(lái)配置 powerlevel10k,安裝自己的喜好進(jìn)行配置即可:

6、常用插件的安裝與配置
環(huán)境配置好了,我們還需要加上一些插件讓終端更好用,介紹我用的幾個(gè)插件,效率杠杠的。
git 插件
默認(rèn)已開(kāi)啟,可以使用各種 git 命令的縮寫(xiě),比如:
git add --all 可以簡(jiǎn)寫(xiě)為 gaa
git commit -m 可以簡(jiǎn)寫(xiě)為 gcmsg
查看所有 git 命令縮寫(xiě):
cat ~/.oh-my-zsh/plugins/git/git.plugin.zsh
z 插件
z 插件是 autojump 插件在 oh-my-zsh 內(nèi)置的類(lèi)似組件,基本包含所有功能。使用 z 之后可以讓你最快速的切換文件路徑。z 插件記住了你在命令行中跳轉(zhuǎn)過(guò)的每個(gè)路徑,并且記錄了每個(gè)路徑的訪問(wèn)次數(shù),因此,它常常能猜到你想訪問(wèn)的路徑。默認(rèn)安裝 oh-my-zsh 時(shí)就已經(jīng)安裝了 z 插件,具體可以在以下目錄看到:~/.oh-my-zsh/plugins
使用舉例:
z foo 進(jìn)入到最匹配的foo關(guān)鍵字的目錄 z foo bar 進(jìn)入層級(jí)匹配,先匹配foo關(guān)鍵字,再匹配bar關(guān)鍵字的目錄 z -r foo 進(jìn)入匹配foo關(guān)鍵字目錄列表中rank值最高的目錄 z -t foo 進(jìn)入匹配foo關(guān)鍵字目錄列表中最近訪問(wèn)的目錄 z -l foo 列出所有匹配foo關(guān)鍵字的目錄列表
只要你在終端上使用 cd 訪問(wèn)過(guò)的目錄,它都會(huì)記錄下來(lái),然后下次可以在任何工作目錄下使用只需要用 z + 目錄名 就可以直接進(jìn)入。
啟用方法:修改 ~/.zshrc,添加 z 插件:
plugins=(
git
z
)
zsh-autosuggestions[5]
有了它,執(zhí)行過(guò)的命令,就不需要重復(fù)的輸入啦,比如我輸入 source py,它自動(dòng)會(huì)提示曾今執(zhí)行過(guò)的命令是 source py38env/bin/activate,這時(shí)候只需要點(diǎn)擊方向鍵的右鍵盤(pán)就可以直接填充命令,爽到爆有沒(méi)有。

安裝方法:
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
zsh-syntax-highlighting[6]
shell 語(yǔ)法高亮,這個(gè)插件必須裝。
安裝方法:
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git
echo "source ${(q-)PWD}/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc
最后確保 ~/.zshrc 里面啟用了這些插件:
plugins=(
git
z
zsh-autosuggestions
zsh-syntax-highlighting
)
最后
oh-my-zsh 可以大大提升你的 terminal 操作效率,當(dāng)你忘記路徑,直接 z + 你能想到的關(guān)鍵詞,就可以跳轉(zhuǎn)到你想要的路徑。當(dāng)你輸入命令時(shí),自動(dòng)幫你回憶之前輸入過(guò)的命令,當(dāng)你輸錯(cuò)指令時(shí),命令會(huì)變成紅色,正確時(shí)變成綠色,可謂非常貼心了。而 powerlevel10k 就是讓你的終端高端大氣上檔次。
順便說(shuō)一下,Windows 新的 terminal[7] 也越來(lái)越好看了,放幾張截圖:

用 Windows 的小伙伴可以去文末的鏈接去看看。
如果覺(jué)得有幫助,歡迎點(diǎn)贊、在看,分享給你的朋友們,也可以關(guān)注「Python七號(hào)」,每天學(xué)習(xí)一個(gè)小技術(shù)。
參考資料
Linux 子系統(tǒng): https://docs.microsoft.com/zh-cn/windows/wsl/
[2]oh-my-zsh: https://github.com/robbyrussell/oh-my-zsh.git
[3]powerlevel10k 官方文檔: https://github.com/romkatv/powerlevel10k
[4]字體: https://github.com/romkatv/powerlevel10k#meslo-nerd-font-patched-for-powerlevel10k
[5]zsh-autosuggestions: https://github.com/zsh-users/zsh-autosuggestions
[6]zsh-syntax-highlighting: https://github.com/zsh-users/zsh-syntax-highlighting
[7]Windows 新的 terminal: https://github.com/microsoft/terminal
