通過 zsh + zim + powerlevel10k 讓 Windows Terminal + WSL2 的指令碼具有自動補完功能

當我們安裝好 WSL/WSL2 之後,就可以在 Windows 上使用 Linux 的命令,請參考 Windows 與 Linux 的互通性 | Microsoft Docs,但卻沒有像 Powsershell 那樣的 InstelliSense / Completaion,搜尋了一下發現別的生態已經有非常完整的方案了,最後我選擇 zsh + zim + powerlevel10k,它們除了讓我們的 CLI 畫面變得更漂亮,還有以下功能 (我只知道這樣XD)

  • 自動補完,按 Tab or 方向鍵就自動填上完整指令。
  • 指令執行時間。
  • 輸入部分指令,呈現之前輸入過的指令

工具介紹

開發環境

安裝步驟

開啟 Windows Terminal 的 Ubuntu

安裝 zsh

輸入以下命令

sudo apt install zsh

 

執行結果如下圖:

 

切換預設 Shell

chsh -s $(which zsh)

或是手動切換

exec zsh

 

切換到 zsh

安裝 zim

兩種方式可以安裝,參考:

zimfw/zimfw: Zim: Modular, customizable, and blazing fast Zsh framework (github.com)

With curl:

curl -fsSL https://raw.githubusercontent.com/zimfw/install/master/install.zsh | zsh

With wget:

wget -nv -O - https://raw.githubusercontent.com/zimfw/install/master/install.zsh | zsh

 

安裝畫面如下:

重啟 Windows Terminal

 

安裝 Powerlevel10k

編輯 ~/.zimrc,用編輯工具加入以下內容,比如:vim ~/.zimrc

zmodule romkatv/powerlevel10k

或者用 echo 命令

echo "zmodule romkatv/powerlevel10k" >> ~/.zimrc

然後輸入以下命令安裝 Powerlevel10k

zimfw install


執行結果如下:

重啟 Windows Terminal


配置 Powerlevel10k

依照互動介面一步一步設定

 

配置完成結果如下:

重新配置 Powerlevel10k

p10k configure

 

安裝特殊字型

官方建議使用以下字型

Download these four ttf files:

 

Windows Terminal 的字型配置如下圖:

 

自動補完效果

最後,在 Windows Terminal 輸入 docker i [tab],會列出符合的指令;images 顏色較淡,是曾經執行過的指令

執行結果如下圖:

 

參考資源

[Terminal] 使用 Zsh + Zim + Powerlevel10k 打造美觀又快速的 Terminal | by Raymond Lee | Medium

用 zsh + zim + powerlevel10k 讓你的 Terminal 潮又快 · dw's 小站 (dwye.dev)

若有謬誤,煩請告知,新手發帖請多包涵


Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET

Image result for microsoft+mvp+logo