共用方式為


Windows 終端機中的疑難排解

本指南解決了您在使用 Windows 終端機時可能遇到的一些常見錯誤和障礙。

開啟設定不會執行任何動作(或開啟非預期的應用程式)

如果您選擇下拉式選單中的 設定 按鈕,終端機會嘗試開啟設定檔案 settings.json。 此動作會導致作業系統啟動您設定的 .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 終端機,WSL 在設定startingDirectory中參考發行版的主目錄路徑\\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 有自己單獨的設定檔概念。 如果您在 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 檔案配置自己的自訂按鍵繫結

文字模糊

某些顯示驅動程式和硬體組合無法處理捲動和髒區域,而不會模糊前一個畫面的資料。 若要緩解此問題,請新增 這些全域轉譯設定 的組合,以減少終端機文字轉譯器對硬體造成的壓力。

我的顏色看起來很奇怪! 我的螢幕上有黑條!

這很重要

此問題僅適用於 Windows 終端機 1.2+ 版。 如果您在 Windows 終端機 1.0 或 1.1 中看到色彩問題,或此處未擷取的問題,請提出錯誤。

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 上的許多其他應用程式) 。 如果您看到此警告,請遵循下列步驟重新啟用服務:

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

    services.msc 在執行對話框中

  2. 找到「觸控鍵盤和手寫面板服務」

    Services.msc 中的觸控鍵盤和手寫面板服務

  3. 開啟此服務的「屬性」

    服務屬性

  4. 將「啟動類型」變更為「自動」

    服務啟動類型

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

重新啟動機器後,服務會自動啟動,並且不再出現對話框。

為什麼使用 Git Bash 命令列時會看到閃爍或頻繁閃動?

您可能會注意到,在 Windows 終端中使用 Git Bash 命令列時會出現閃爍現象。 這種行為實際上是設計使然。 終端機遵循 Git Bash 告訴它執行的指令(將 bell-style 設為 visible,造成閃光與響鈴反應相聯),但這種行為可能會讓人分心。 若要修正此問題,請使用文字編輯器開啟 .inputrc Git Bash 的檔案。 此檔案可能位於路徑 C:\Program Files\Git\etc. 若要使用 Nano 文字編輯器開啟檔案,請使用命令: nano ~/.inputrc

變更預設值:

# none, visible or audible
set bell-style visible

bell-style 設定為 noneaudible 以移除可見閃光燈:

set bell-style none

按 Ctrl + O 和 Ctrl + X 儲存並退出。

如何將 Windows 終端機中的設定重設回預設設定?

若要將設定重設回原始預設設定,請刪除 settings.json 檔案。 此動作會導致 Windows 終端機使用原始預設設定重新產生 settings.json 檔案。

這很重要

從 Windows 終端機 1.10 版或更高版本開始,您還需要刪除 state.json 與檔案相同 settings.json 目錄中的檔案,才能將設定完全重設為預設值。

為什麼壓克力不透明度不能使我的 Windows 終端機背景透明?

您可以使用屬性useAcrylic設定終端機視窗的透明度。 您的不透明度設定可能不適用於壓克力的原因有很多,包括:

  • 在整個系統政策中,壓克力特效僅在前景視窗中啟用。 如果您切換到終端以外的任何其他視窗,終端的壓克力效果會關閉。
  • 如果您的 GPU 硬件不支持壓克力,則壓克力無法工作。 如果您在虛擬機 (VM) 或遠程桌面上運行應用程序,則壓克力可能不起作用。
  • 作業系統會停用壓克力,原因有很多,例如處於省電 (低電量) 模式或使用遠端桌面存取電腦時。

為什麼當我將鼠標懸停在窗口上並開始鍵入時,鼠標指標會消失?

此游標自動隱藏行為是設計使然,但您可以停用它。 在 Windows 設定中搜尋滑鼠設定>、其他滑鼠設定>、滑鼠屬性、>指標選項>,並取消勾選鍵入時隱藏指標。 您可能需要重新啟動 Windows 終端機才能使此變更生效。