Windows 終端機內的疑難排解
本指南說明您在使用 Windows 終端機時可能會遇到的一些常見錯誤和障礙。
開啟設定不會執行任何動作 (或開啟未預期的應用程式)
如果您按一下下拉式清單中的 [設定] 按鈕,終端機會嘗試開啟設定檔案 settings.json
。 這會導致 OS 嘗試並啟動您設定的 .json
檔案編輯器。 可能會是 Visual Studio 或記事本,或者某些其他完全是預期之外的應用程式。 如果您的電腦上沒有已設定的 .json
編輯器,則 OS 最終會顯示 [您要如何開啟此檔案] 對話方塊。
提示
您也可以使用設定 UI 以進行設定。 您可以在動作頁面瞭解如何開啟設定 UI。
將您的 WSL 發行版本設定為在較舊版 Windows 終端機啟動時從 ~
主目錄開始
根據預設,設定檔的 startingDirectory
是 %USERPROFILE%
(C:\Users\<YourUsername>
)。 這是 Windows 路徑。 針對在新版本 Windows 終端機執行的 WSL 發行版本,檔案系統可以輸入 ~
來設定此主路徑。 在較舊版本的 Windows 終端機,您可以使用 /home/<Your Ubuntu Username>
直接參照主資料夾。 例如,下列設定會在其主檔案路徑中啟動「Ubuntu-20.04」發行版本:
{
"name": "Ubuntu-20.04",
"commandline" : "wsl -d Ubuntu-20.04",
"startingDirectory" : "/home/<Your Ubuntu Username>"
}
如果您使用非常早期版本的 Windows 終端機,參照發行版本的 startingDirectory
設定主路徑時,WSL 可能會要求使用 \\wsl$\
前置詞。 例如,下列設定會在其主目錄檔案路徑中啟動 "Ubuntu-18.04" 散發套件:
{
"name": "Ubuntu-18.04",
"commandline" : "wsl -d Ubuntu-18.04",
"startingDirectory" : "//wsl$/Ubuntu-18.04/home/<Your Ubuntu Username>"
}
重要
在較新版本的 Windows 上,startingDirectory
可接受 Linux 樣式的路徑。
設定索引標籤標題
若要讓命令介面自動設定您的索引標籤標題,請瀏覽設定索引標籤標題教學課程。 如果您想要設定自己的索引標籤標題,請開啟 settings.json 檔案,並執行下列步驟:
在所選命令列的設定檔中新增
"suppressApplicationTitle": true
,以隱藏從命令介面傳來的任何標題變更事件。 只將此設定新增至您的設定檔,便會將索引標籤標題設定為設定檔的名稱。如果您想要使用不是設定檔名稱的自訂索引標籤標題,請新增
"tabTitle": "TITLE"
。 以您偏好的索引標籤標題取代 "TITLE"。
PowerShell 中的命令列引數
瀏覽命令列引數頁面,以了解命令列引數在 PowerShell 中的運作方式。
WSL 中的命令列引數
瀏覽命令列引數頁面,以了解命令列引數在 WSL 中的運作方式。
設定 startingDirectory
時發生問題
如果 startingDirectory
在您的設定檔中被略過,請先檢查並確認在您的 settings.json 檔案中語法正確無誤。 為了協助您檢查此語法,系統會自動插入 "$schema": "https://aka.ms/terminal-profiles-schema"
。 某些應用程式 (例如 Visual Studio Code) 可以在您進行編輯時,使用所插入的結構描述來驗證您的 json 檔案。
如果您的設定正確,就可以執行啟動指令碼,以分開設定終端機的起始目錄。 例如,PowerShell 有自己的個別設定檔概念。 如果您要在該處變更起始目錄,其執行優先順序高於 Windows 終端機所定義的設定。
或者,如果您使用 commandline
設定檔設定來執行指令碼,則可能表示您在該處設定了位置。 和 PowerShell 設定檔類似,您在該處的命令在執行時,優先順序會高於 startingDirectory
設定檔設定。
startingDirectory
的目的是要在指定的目錄中啟動新的 Windows 終端機執行個體。 如果終端機執行任何會變更其目錄的程式碼,則最好看看該處。
Ctrl+= 不會增加字型大小
如果您使用德文的鍵盤配置,便可能遇到此問題。 如果主鍵盤配置設為德文,Ctrl+= 會還原串行化為 Ctrl+Shift+0 。 這是德文鍵盤的正確對應。
更重要的是,應用程式永遠不會收到 Ctrl+Shift+0 按鍵。 這是因為 如果您有多個鍵盤配置作用中,Windows 會保留 Ctrl+Shift+0 。
如果您想要停用這項功能以便讓 Ctrl+=
正常運作,則請遵循此部落格文章中<變更快速鍵以切換 Windows 10 中的鍵盤配置>內的指示。
將 [切換鍵盤配置] 選項變更為 [未指派] (或 Ctrl+Shift 關閉),然後選取 [確定],然後套用。 Ctrl+Shift+0 現在應該以按鍵系結的形式運作,並傳遞至終端機。
另一方面,如果您確實有使用多個輸入語言的快速鍵功能,可以在您的 settings.json 檔案中設定您自己的自訂按鍵繫結。
文字模糊
有些顯示器驅動程式和硬體組合不會處理捲軸和/或廢棄區域,而不會將前一個畫面的資料模糊處理。 若要解決這個問題,您可以新增這些全域轉譯設定的組合,以減少放置在硬體上且由終端機文字轉譯器所造成的壓力。
色彩看起來很奇怪! 我的畫面上有黑色橫條!
重要
這只適用於版本 1.2+ 的 Windows 終端機。 如果您在 Windows 終端機 1.0 或 1.1 中發現色彩問題或未在此處提及的問題,請提出 Bug 報告。
Windows 終端機 1.2 和更新版本對於特定應用程式色彩設定的理解有所改善。 由於這項改善,我們已移除一些導致使用者體驗不佳的相容性區塊。 可惜的是,有少數應用程式仍可能會出現問題。
我們會持續更新這個疑難排解項目,並列出已知問題清單及因應措施。
PowerShell 中的黑色橫條 (5.1, 6.x, 7.0)
終端機搭配 PowerShell 的線條編輯程式庫 PSReadline 使用時,可能會在畫面上畫出黑色線條。 這些色彩顯示錯誤的區域會延伸到畫面上,超出提示範圍,無論是有命令參數、字串或運算子。
PSReadline 版本 2.0.3 已發行,並包含此問題的修正方法。 如果您使用的是 PSReadline 的發行前版本,請注意目前尚未提供修正方法。
若要更新為最新版本的 PSReadline,請執行下列命令:
Update-Module PSReadline
為什麼我的表情符號不會在捷徑清單中顯示為圖示?
只有從檔案位置連結的影像可以轉譯為捷徑清單中的設定檔圖示。 捷徑清單圖示不支援表情符號。
技術提示
使用 GetConsoleScreenBufferInfo
API 系列以 Win32 格式擷取使用中主控台色彩,並嘗試將其轉換成跨平台 VT 序列 (例如,將 BACKGROUND_RED
轉換為 \x1b[41m
) 的應用程式,可能會干擾終端機偵測應用程式嘗試使用的背景色彩的能力。
建議應用程式開發人員選擇 Windows API 函式 或 VT 序列來調整色彩,並避免嘗試混合使用。
鍵盤服務警告
從 Windows 終端機 1.5 開始,如果停用「觸控式鍵盤和手寫面板服務」,終端機會顯示警告。 作業系統需要此服務,才能將輸入事件正確路由傳送至終端機應用程式 (以及 Windows 上的許多其他應用程式)。 如果您看到此警告,可以執行下列步驟來重新啟用服務:
在 [執行] 對話方塊,執行
services.msc
找到 [觸控式鍵盤與手寫面板服務]
開啟此服務的 [屬性]
將 [啟動類型] 變更為 [自動]
點擊 [確定],然後重新啟動電腦。
重新開機之後,服務應該會自動啟動,而且對話方塊應該不會再出現。
為什麼我在使用 git bash 命令列時會看到閃爍或閃光?
使用 Windows 終端機內的 git bash 命令列時,您可能會注意到閃爍或閃光。 這樣的行為其實是設計使然。 終端機會遵守 git bash 的指令 (將鈴聲樣式設定為可見,導致閃光與鈴聲回應相關聯),但我們理解這可能會造成干擾。 若要修正此問題,請使用文字編輯器開啟 Git bash 的 .inputrc
檔案。 此檔案可能位於路徑 C:\Program Files\Git\etc
。 若要使用 Nano 文字編輯器開啟:nano ~/.inputrc
變更預設設定:
# none, visible or audible
set bell-style visible
將鈴聲樣式設定為 none
或 audible
,即可移除可見的閃光:
set bell-style none
按下 Ctrl + O 和 Ctrl + X 以儲存並結束。
如何將我的 Windows 終端機設定重設為預設設定?
若要將設定重設為原始預設設定,請刪除您的 settings.json 檔案。 這會使 Windows 終端機以原始預設設定重新產生 settings.json 檔案。
重要
從 Windows 終端機版本 1.10 或更新版本開始,您也必須刪除位於與 settings.json
檔案相同的目錄中的 state.json
檔案,才能將設定完全重設為預設設定。
為什麼壓克力不透明度並沒有讓我的 Windows 終端機背景顯得透明?
您可以使用 useAcrylic
屬性 來設定終端機視窗的透明度。 您的不透明度設定不適用於壓克力屬性可能出於幾個原因,包括:
- 作為全系統原則,壓克力只會針對前景視窗啟用。 因此,如果您啟動終端機以外的任何其他視窗,終端機的壓克力屬性就會關閉。
- 如果您的 GPU 硬體不支援壓克力,這個屬性便無法運作。 如果您在虛擬機器 (VM) 或遠端桌面上執行應用程式,壓克力可能無法運作。
- 作業系統可能會因為許多原因而停用壓克力,例如處於省電 (低電量) 模式,或使用遠端桌面存取電腦時。
為什麼將滑鼠指標停留在視窗上並輸入時,游標會消失?
這樣的游標自動隱藏行為是設計使然,但可以停用,方法是在 [Windows 設定] 中搜尋 [滑鼠設定] > [其他滑鼠設定] > [滑鼠屬性] > [指標選項] > 取消勾選 [在輸入時隱藏指標]。 您可能需要重新啟動您的 Windows 終端機,此變更才會生效。