溫馨提示: 原文中含有一些外部連結,點選全文左下角的”閱讀原文“體驗會更佳喔~
接著之前的文章 黑科技搶先嘗(續) – 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
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 CurrentUser
PS 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 ? >" }
中的?
替換為所需要的表情,這裡我替換成了: ??. -
比如,我使用了vs code編輯,操作如下:
-
檔案 – >另存為 – >使用預設檔案名,但你必須將編碼設定為
UTF-16 LE
,因為這是Powershell
對其配置檔案所期望的(UTF-8編碼不起作用) -
儲存後關閉編輯器
-
關閉Powershell / Terminal Windows
-
再次開啟
Powershell
或Windows Terminal
的Powershell Tab
此時介面為:
現在,好好享受你的Emoji
符號提示符吧~
這個功能的給出,得感謝開發Windows terminal
的員工,很感激他們的快速響應。
這是我之前提的一個issue
,地址為:
Could new Windows Terminal customize prompt using emoji? · Issue #814 · microsoft/terminal
https://github.com/microsoft/terminal/issues/814#issuecomment-492907982
不從Window terminal中使用 Powershell
對於預設獨立的powershell視窗,只能使用後面這種字型,windows 10之外的windows系統也能在介面上選擇後使用(附圖)。
在命令列提示符還沒加入Emoji
表情之前,powershell
介面為:
相關閱讀:
關於windows中的utf-8字元和utf-16字元 – 雲風
https://blog.codingnow.com/2019/05/windows_utf16.html
告別 Windows 終端的難看難用,從改造 PowerShell 的外觀開始 – 少數派
https://sspai.com/post/52868
原文地址:
https://www.cnblogs.com/enjoy233/p/simple_guide_to_beautify_powershells_in_Windows_Terminal.html
朋友會在“發現-看一看”看到你“在看”的內容