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 檔案,並執行下列步驟:

  1. 在所選命令列的設定檔中新增 "suppressApplicationTitle": true,以隱藏從命令介面傳來的任何標題變更事件。 將此設定新增至您的設定檔,便會將索引標籤標題設定為設定檔的名稱。

  2. 如果您想要使用不是設定檔名稱的自訂索引標籤標題,請新增 "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

為什麼我的表情符號不會在捷徑清單中顯示為圖示?

只有從檔案位置連結的影像可以轉譯為捷徑清單中的設定檔圖示。 捷徑清單圖示不支援表情符號。

技術提示

使用 GetConsoleScreenBufferInfoAPI 系列以 Win32 格式擷取使用中主控台色彩,並嘗試將其轉換成跨平台 VT 序列 (例如,將 BACKGROUND_RED 轉換為 \x1b[41m) 的應用程式,可能會干擾終端機偵測應用程式嘗試使用的背景色彩的能力。

建議應用程式開發人員選擇 Windows API 函式 VT 序列來調整色彩,並避免嘗試混合使用。

鍵盤服務警告

從 Windows 終端機 1.5 開始,如果停用「觸控式鍵盤和手寫面板服務」,終端機會顯示警告。 作業系統需要此服務,才能將輸入事件正確路由傳送至終端機應用程式 (以及 Windows 上的許多其他應用程式)。 如果您看到此警告,可以執行下列步驟來重新啟用服務:

  1. 在 [執行] 對話方塊,執行 services.msc

    services.msc in the run dialog

  2. 找到 [觸控式鍵盤與手寫面板服務]

    Touch Keyboard and Handwriting Panel Service in Services.msc

  3. 開啟此服務的 [屬性]

    service properties

  4. 將 [啟動類型] 變更為 [自動]

    service startup type

  5. 點擊 [確定],然後重新啟動電腦。

重新開機之後,服務應該會自動啟動,而且對話方塊應該不會再出現。

為什麼我在使用 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

將鈴聲樣式設定為 noneaudible,即可移除可見的閃光:

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 終端機,此變更才會生效。