黑科技搶先嚐(續2) - Windows terminal中Powershell Tab的極簡美化指南
接著之前的文章 黑科技搶先嚐(續) - Windows terminal中WSL Linux 終端的極簡美化指南,依然假定你安裝好了windows terminal預編譯版本。
這次我的目標是將PowerShell美化成下面這樣,並在命令提示符中加入Emoji
表情。
安裝python
由於本文主要是針對Windows terminal上的Powershell Tab
來寫,自然是需要使用 windows 10 1903版本的。那此時安裝Python
的方法即在Window store
中搜索Python
,購買、安裝即可,預設安裝上的應該是Python 3.7。
當然,你也可以去python
官網上下載安裝包後進行安裝~
而在後續使用pip
命令的過程中,經常會出現如下提示:
You are using pip version 19.0.3, however version 19.1.1 is available.
升級 pip
這說明我們該升級pip
的版本了,完美解決的解決方法為:輸入如下命令
pip install --user --upgrade pip
安裝git
安裝好git,並保證git
的系統變數沒問題,cmd或powerer中輸入git
正常執行。
安裝powerline字型
powershell對字型要求比較嚴格,因此並不是所有的等寬字型都可以直接在裡面使用。
我們先來安裝powerline
字型吧,powerline/fonts 專案的官方安裝步驟如下:
PS C:\WINDOWS\system32> git clone <https://github.com/powerline/fonts>PS C:\WINDOWS\system32> cd C:\Users\Bruce\fonts\PS C:\Users\Bruce\fonts> ./install.ps1
執行這裡最後一句 時,會出現許可權的問題:
其解決方法是使用管理員許可權另開一個 PowerShell
視窗, 輸入:
PS C:\Users\Bruce\fonts> set-executionpolicy Bypass
這個命令可以執行未簽名的指令碼或者為你的指令碼簽名。
執行之,會彈出:
這裡需要輸入a
, 然後再次執行:
./install.ps1
但我並不建議這樣安裝,因為這樣是將所有的powerfont字型都安裝上,需要耗費大量的時間。事實上,我們只需安裝符合powerline
規範的字型 Sarasa Mono T SC
(中文叫 等距更紗黑體) 或 Fira code
即可。
從相應的github專案官網上下載前面這個昨天,特別的慢,我已經上傳到:
https://github.com/yanglr/WindowsDevTools/blob/master/awosomeTerminal/fonts-PowerShell/fonts-Sarasa Mono T SC.7z,
方便你 git clone
後使用,拉取完成後,解壓後,複製檔案到C:/Windows/System/fonts
資料夾,即安裝完成。
當然,你也可以安裝後面的Fira code
字型. 而對於預設獨立的powershell視窗,只能使用前面的Sarasa Mono T SC
字型,該昨天在Windows 10之外的Windows系統中也能在介面上選擇後使用。
windows下安裝Fira code
字型的方法為:
- 下載 FiraCode https://github.com/tonsky/FiraCode/releases
- 複製相應的ttf 檔案到
system/fonts
資料夾
或
- 安裝chocolatey
以管理員許可權開啟powershell,輸入
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
- 然後使用chocolatey命令:
choco install firacode
然後在命令列應用之,具體操作是在profiles.json
中把字型設定成它,即可生效。
參考文件:
tonsky/FiraCode Wiki
https://github.com/tonsky/FiraCode/wiki
主題定製
此外,如果想更深入地定製powershell
主題,推薦安裝oh_my_posh
,對標 Linux
下的 oh-my-zsh
,下面詳細介紹。
安裝oh-my-posh
oh-my-posh
是一個強大的powerline
主題,類似於 Linux
下的 oh-my-zsh
.
相應的github
官方專案中其實有具體的操作步驟,見:
JanDeDobbeleer/oh-my-posh: A prompt theming engine for Powershell running in ConEmu
https://github.com/JanDeDobbeleer/oh-my-posh
檢視策略組的執行許可權
首先,我們需要檢視當前的許可權,以便後續正常安裝,這也是許多文章忽略的問題。參看微軟官方文件中的策略管理方式,只需在以管理員許可權開啟的powershell
中這麼執行指令:
Get-ExecutionPolicy -List
此時,我們需要輸入以下命令,將CurrentUser的ExecutionPolicy(執行許可權)從原來的Undefined更改成RemoteSigned,需要輸入命令:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
按提示輸入y
即可。
使用choco
安裝終端模擬器 - ConEmu
推薦你使用ConEmu
在Windows上獲得出色的終端體驗。
PS C:\Users\Bruce> choco install ConEmu
接下來,你需要使用PowerShell Gallery
來安裝 oh-my-posh
.
PS C:\Users\Bruce> Install-Module posh-git -Scope CurrentUserPS C:\Users\Bruce> Install-Module oh-my-posh -Scope CurrentUser
都安裝好之後,還需要更新配置檔案$PROFILE
,類似於Linux Bash的.bashrc, 這是全域性修改,而不是臨時的設定喔~
輸入:
PS C:\Users\Bruce> $PROFILE
結果為:
C:\Users\Bruce\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
繼續輸入:
PS C:\Users\Bruce> if (!(Test-Path -Path $PROFILE )) { New-Item -Type File -Path $PROFILE -Force }PS C:\Users\Bruce> notepad $PROFILE
在開啟的檔案中新增內容:
Import-Module posh-gitImport-Module oh-my-poshSet-Theme Paradox
儲存後關閉記事本。
最後更新配置:
PS C:\Users\Bruce> C:\Users\Bruce\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
重啟powershell後會發現已經生效。
優化 PowerShell 的配色
接下來,我們可以使用微軟提供的一個方便更改預設終端配色的工具 colortool
來優化powershell中的顏色,下載地址:
https://github.com/microsoft/terminal/releases/download/1904.29002/ColorTool.zip
這個工具也支援讀取 iTerm 主題檔案。
- 首先,使用上面的地址將 ColorTool 下載至本地,並解壓
- 開啟
Windows terminal
的Powershell Tab
ColorTool 使用非常簡單,該工具自帶了幾種配色主題,我們可以利用下面這個命令進行檢視:
# 注:-s 代表 schemescolortool -s
.\ColorTool.exe -s
其中前面列出的幾個 .ini
和 .itermcolors
就是主題配置檔案,我們可以直接通過下面這個命令設定主題:
# 臨時檢視colortool <主題名稱># 定義預設值colortool -d <主題名稱>
比如我們希望將主題配色更換為 OneHalfDark.itermcolors
,只需要輸入下面這個命令就可以更換並預覽更新:
.\ColorTool.exe OneHalfDark
我隨便使用了幾個命令,結果如下:
要特別提醒一點:
在Windows terminal
下使用Powershell Tab, 呼叫ColorTool
需要使用.\ColorTool.exe
, 如果直接用ColorTool.exe
會報錯(如下圖所示):
而在Windows terminal
以外的獨立cmd.exe
或 Powershell
視窗,.\ColorTool.exe
和ColorTool.exe
都能正常執行。
將powershell
的提示符改為 Emoji
終端中插入Emoji
的功能,Mac和Linux幾年前都能支援。相比windows
也應該可以支援,請執行以下步驟:
啟動Powershell
或Windows Terminal 的 Powershell Tab
執行
notepad $profile
或code $profile
(推薦使用後者vs code,記得安裝時勾選上Add to PATH (available after restart)
)複製/貼上此行:function prompt { "PS $pwd>" }
在你想要的位置插入表情符號, 比如 把
function prompt {"PS $pwd ? >" }
中的?
替換為所需要的表情,這裡我替換成了: