為了支持命令行的使用,微軟重新開發了windows Terminal了,經過幾次的迭代,目前已經趨于成熟,可以用來實際使用。本文中,蟲蟲給大家介紹一個利用Windows Terminal、WSL和VSC構建一個完美的終端開發環境,實現:
使WSL成為主開發環境
使用VSCode為主編輯器
擁有一個漂亮的終端
WSL和VSCode
首先安裝WSL 2。我們選擇了Ubuntu發行版,這是目前最適合做開發的linux發行版。
接著安裝VSCode和Remote Development擴展包。使用該擴展包后,就可以可以讓VSCode無縫編輯WSL文件系統中的文件。

Windows終端
為了使得我們的終端變得漂亮,安裝了Windows Terminal(WT),這是Microsoft新推出的非常棒的一個Windows新終端。
以WSL成為主要開發環境,但仍然希望在Windows中工作也能獲得很好的體驗。為此,安裝最新版的PowerShell 7。

最后是WT配置文件,為了打造一個漂亮的終端,必須要自己好好配置一番。默認情況下,WT可以創建WSL,PowerShell,CMD和Azure Cloud Shell窗口。我們對cmd和Azure Cloud Shell不感興趣,并且要使用PowerShell 7而不是PowerShell,因此禁用了WSL Shell以外的所有功能,只需添加"hidden": true屬性添加到WT設置文件中的配置文件中(單擊標題欄中的下拉列表,然后單擊“設置”或Ctrl+,)。
PowerShell WT配置
創建PowerShell 7配置文件,將以下對象添加到配置文件數組:
{
"guid": "{346d54ee-6282-41c7-846a-0a2fa38ff66b}",
"name": "PowerShell",
"commandline": "pwsh.exe",
"icon": "%SystemRoot%\Installer\{8B844F39-E6EE-486B-BE85-96A485AE2B96}\PowerShellExe.ico",
"startingDirectory": "D:\code"
}
注意事項:
要生成GUID,可以使用在線GUID生成器網站
對PowerShell 7,要使用pwsh.exe命令而不是powershell.exe,請按照以下步驟在系統上查找圖標路徑:
打開“開始”菜單,然后搜索PowerShell 7
右鍵點擊該應用,然后點擊“打開文件位置”
在打開的文件資源管理器中,右鍵單擊快捷方式,然后單擊“屬性”
在“快捷方式”選項卡上,單擊“更改圖標...”按鈕,然后復制文件路徑。
將起始目錄設置為保留所有項目的位置,理想情況下,該目錄位于驅動器的根附近,以使文件路徑盡可能短。
Ubuntu WT配置
由于要將WSL用作為主要環境,因此將其配置文件對象移至列表的頂部,以便它將首先出現在新選項卡的下拉列表中。用defaultProfile WSL概要文件的guid屬性替換了頂層屬性,以使其成為在WT啟動時自動打開的概要文件。
和PowerShell類似,希望起始目錄為~/code。如果嘗試直接在WT配置中進行設置,則會發現它不起作用,因為WT不知道如何解決它。可以改用絕對路徑到達那里,并且需要使用WT可以理解的Windows文件路徑。可以使用Windows從Windows訪問WSL發行版的文件系統\wsl$<distro>,因此,將該屬性添加到Ubuntu配置文件對象中:(應在"startingDirectory": "\\wsl$\Ubuntu\home\CC\code"其中Ubuntu替換為WSL發行版的名稱和WSL用戶名)。
WT主題
最后,為WT設計一個新主題。此處使用了與VSCode相同的配色方案,即Night Owl主題。創建了一個VSCode插件來自動生成WT主題。
以下是Night Owl主題下終端的外觀效果如下圖:

shell profile
接下來,開始進行shell配置。shell配置文件是一個在終端啟動時運行的腳本,可用于配置當前環境。對于PowerShell,這將是PowerShell腳本,對于WSL,將是bash腳本。
PowerShell適配
首先是PowerShell。可以運行echo $PROFILE以查看配置文件腳本是否已經存在:C:UsersCCDocumentsPowerShellMicrosoft.PowerShell_profile.ps1。PowerShell似乎在各個地方都有作用,只需在適當的位置創建腳本即可,它應該可以工作。添加到個人資料腳本中的內容:
# C:UsersCCDocumentsPowerShellMicrosoft.PowerShell_profile.ps1
Set-Alias -Name editor -Value nano
Set-Alias -Name edit -Value editor
function profile_alias { editor $PROFILE }
Set-Alias -Name profile -Value profile_alias
function reload_alias { & $PROFILE }
Set-Alias -Name reload -Value reload_alias
解釋:首先,為終端編輯器創建了幾個別名(editor和edit)。喜歡使用終端編輯器而不是GUI編輯器,因為它減少了在終端中工作時的上下文切換,并且加載文件以進行快速編輯要快得多。就是說,如果想使用VSCode,則可以替換nano為code。
為編輯器命令創建別名的原因是可以隨時更改編輯器,而不必更改肌肉記憶即可使用新命令。這也意味著可以創建更多打開編輯器的別名,而不必在更改編輯器時更改所有別名。
接下來,添加profile別名以在編輯器中打開配置文件腳本。這樣就無需記住個人資料的位置,可以運行profile并可以立即開始對其進行編輯。還添加了一個reload 別名,該別名僅使用配置文件腳本重新加載外殼程序。這時可以使用對配置文件腳本所做的更改,而不必創建新的終端實例。
Bash適配
同理對bash也進行配置。在bash中,配置文件是位于的bash腳本~/.bashrc。默認情況下,它已經包含很多東西,因此將更改添加到腳本的底部,其內容為:
# ~/.bashrc
export EDITOR="nano"
alias editor="$EDITOR"
alias edit="editor"
export PROFILE="~/.bashrc"
alias profile="editor $PROFILE"
alias reload="source $PROFILE"
alias explorer="explorer.exe"
和PowerShell腳本非常相似。首先,創建一個EDITOR環境變量。一些Linux程序會通過EDITOR變量啟用默認瀏覽器,為了讓程序默認特定編輯器,需要給設置它的值。然后利用EDITOR新建兩個別名editor和edit。
然后,添加相同的名稱profile和reload別名以編輯并重新加載概要文件腳本。
最后,添加了另一個別名,該別名映射explorer到explorer.exe與在PowerShell中打開WSL中的Windows File Explorer相同的命令。
終端編輯器
終端編輯器,前面適配時候,選擇了nano,它是一個非常直觀且易于使用的終端編輯器。對沒有太多的終端編輯經驗的人來說,Vim不是和合適,nano可能也會有一定的上手難度,為此,此處我們選擇一個更加現代和直觀容易好用的用golang開發的編輯器micro。

PowerShell配置
在PowerShell中,可以很容易通過scoop或 Chocolatey安裝模塊。如果尚未安裝,則強烈建議這樣做,因為這樣可以使在Windows中安裝程序更加輕松。在本指南中,將使用scoop。安裝了scop之后,只需運行即可scoop install micro。就可以,運行micro以編輯文件。
讓我們更新配置文件腳本以使用它:
# C:UsersCCDocumentsPowerShellMicrosoft.PowerShell_profile.ps1
Set-Alias -Name editor -Value micro
Ubuntu配置
要在Ubuntu上安裝,可以從micro網站運行安裝腳本:
curl getmic.ro | bash
更新bash配置文件以使用它:
# ~/.bashrc
export EDITOR="micro"
micro主題
使用micro進行編輯,可能會發現它的主題與WT主題沖突。一種選擇是將的WT主題移植到micro,但這會費工夫。而使用內置simple主題會使用終端主題的背景顏色,所以可以直接用它。
必須分別為PowerShell和WSL配置micro。要進行配置,請打開Micro,按Ctrl+E打開命令提示符,然后輸入命令set colorscheme simple。
終端提示
要使終端真正漂亮,還需要自定義終端命令行提示。有很多工具,可以供選擇,目前最受歡迎的是Bash的ohmyzsh和PowerShell的oh-my-posh。此處我們選擇Starship。

Starship,是一種“快速,快速”的跨平臺替代方案,具有令人愉快的簡單提示和一些出色的自定義功能(有望在將來的版本中提供更多功能)。由于WSL和PowerShell都可以訪問Windows文件系統,設置一個Starship配置文件,兩者共享。
PowerShell Starship
要為PowerShell的安裝Starship,可以再次使scoop一鍵安裝:
scoop install starship
為了要加載它,需要在編輯配置文件添加配置:
# C:UsersCCDocumentsPowerShellMicrosoft.PowerShell_profile.ps1
Invoke-Expression (&starship init powershell)
現在,可以運行reload別名并立即看到漂亮的提示。
Bash
在bash中安裝Starship也同樣簡單。首先從他們的網站運行bash安裝腳本:
curl -fsSL starship.rs/install.sh | bash
然后將其初始化腳本添加到配置文件中:
# ~/.bashrc
eval "$(starship init bash)"
輸入reload,我們現在也可以在bash中看到它。
Starship配置
要在PowerShell和WSL上對Starship進行相同的配置,首先在Windows文件系統中為PowerShell創建配置文件,然后在WSL文件系統中創建符號鏈接。
Starship~/.config/starship.toml默認情況下會在其中查找其配置文件。在PowerShell中,~解析為C:Users<username>,因此可以運行以下命令來創建配置文件:
mkdir ~/.config
touch ~/.config/starship.toml
現在,可以在此處添加所需的任何配置。此處我們禁用了Starship默認的情換行符和包管理以及Nodejs模塊:
# ~/.config/starship.toml
add_newline = false
[line_break]
disabled = true
[package]
disabled = true
[nodejs]
disabled = true
可以自己嘗試使用默認設置,然后在根據個人喜好進行調整。
最后,需要將這些更改同步到WSL。在bash中,可以運行以下命令來創建符號鏈接:
mkdir ~/.config
ln -s /mnt/c/Users/<username>/.config/starship.toml ~/.config/starship.toml
最終的效果如下:

總結
本文我們介紹了,基于Windows Terminal、WSL和VSC在Windows 10中創建一個漂亮且實用的終端開發環境,拋磚引玉,希望大家能基于此創建應自己喜歡高效的Windows開發環境,可以把自己漂亮的終端界面截圖分享給大家看。