URLhttps://learnscript.net/zh-hant/vscode/terminal/
    複製連結移至說明  範例

    Visual Studio Code 終端機使用和設定說明

    閱讀 38:57·字數 11689·發佈 
    Youtube 頻道
    訂閱 375

    Visual Studio Code 終端機

    在實際的專案開發中,IDE 通常會使用命令列(也被稱為殼層程式,shell)來編譯和執行程式碼,或完成其他的相關工作。終端機使開發人員可以在 Visual Studio Code 中直接使用命令列,比如 Windows 中的 PowerShell命令提示字元,UNIX/Linux 中的bash

    預設情況下,終端機面板會顯示在 Visual Studio Code 的底端區域,該面板的右上角將提供與終端機相關的實用功能和資訊。如果終端機啟動了多個命令列應用,那麽終端機面板的右邊區域會一一列出他們,同時介面會發生一些變化。

    Visual Studio Code檔案總管終端機問題右上角/右邊區域

    Visual Studio Code 終端機的操作功能表

    終端機面板所啟動的命令列應用(殼層程式),通常擁有對應的圖示和名稱,使用滑鼠點選他們可快顯命令列應用對應的操作功能表。如果終端機面板僅包含一個命令列應用,那麽滑鼠左鍵和右鍵可以快顯不同的操作功能表。

    終端機問題pwsh

    開啟 Visual Studio Code 終端機

    要在 Visual Studio Code 中開啟終端機,你可以選擇功能表項檢視 | 終端,或者使用鍵盤快速鍵Ctrl+`(macOS 中為⌃+`),或者在命令選擇區中輸入並執行命令View: Toggle Terminal。如果終端機已經被開啟,那麽使用鍵盤快速鍵Ctrl+`或執行命令View: Toggle Terminal將隱藏終端機

    如何開啟新的外部終端機?

    除了可以開啟整合的終端機,Visual Studio Code 也可以直接開啟外部終端機,只需要使用鍵盤快速鍵Ctrl+Shift+C,或在命令選擇區中輸入並執行命令Open New External Terminal,或選擇檔案總管中的資料夾的操作功能表項在外部終端機中開啟即可。

    外部終端機將作為單獨的程式執行,並且可通過 Visual Studio Code 使用者設定項(在工作區設定檔案中無效)來指定具體被啟動的命令列應用的路徑,其中terminal.external.windowsExec用於 Windows,terminal.external.linuxExec用於 Linux,terminal.external.osxExec用於 macOS。

    settings.json
    {
    	// 以下三個設定項用於設定被啟動的外部命令列應用,在工作區設定中無效
    	"terminal.external.windowsExec": "C:\\WINDOWS\\System32\\cmd.exe",
    	"terminal.external.linuxExec": "xterm",
    	"terminal.external.osxExec": "Terminal.app",
    }

    如何從檔案總管中的資料夾開啟外部終端機?

    在預設情況下,檔案總管中的資料夾只有操作功能表項在整合式終端機中開啟,你需要將設定項terminal.explorerKind設定為external,這將啟用操作功能表項在外部終端機中開啟

    此外,設定項terminal.explorerKind還擁有以下有效取值,integrated(預設值,啟用操作功能表項在整合式終端機中開啟),both(同時啟用操作功能表項在整合式終端機中開啟在外部終端機中開啟)。

    settings.json
    {
    	// 同時啟用操作功能表項在整合式終端機中開啟和在外部終端機中開啟
    	"terminal.explorerKind": "both",
    }

    如何從原始檔控製面板中的原始檔控製儲存庫開啟外部終端機?

    如果原始檔控製面板中的原始檔控製存放庫已經顯示,那麽預設情況下,可通過原始檔控製存放庫中列出的儲存庫的操作功能表項在整合式終端機中開啟,開啟整合式終端機。將設定項terminal.sourceControlRepositoriesKind設定為external,可啟用操作功能表項在外部終端機中開啟,以開啟外部終端機。

    此外,設定項terminal.sourceControlRepositoriesKind還擁有以下有效取值,integrated(預設值,啟用操作功能表項在整合式終端機中開啟),both(同時啟用操作功能表項在整合式終端機中開啟在外部終端機中開啟)。

    settings.json
    {
    	// 同時啟用操作功能表項在整合式終端機中開啟和在外部終端機中開啟
    	"terminal.sourceControlRepositoriesKind": "both",
    }

    新增 Visual Studio Code 終端機

    正如之前提到的,終端機可以同時執行多個命令列應用(殼層程式),這些命令列應用會在終端機面板的右邊區域列出。選擇功能表項終端機 | 新增終端,或者使用鍵盤快速鍵Ctrl+Shift+`(macOS 中為⌃+⇧+`),或者在命令選擇區中輸入並執行命令Terminal: Create New Terminal,或選擇檔案總管中的資料夾的操作功能表項在整合式終端機中開啟,或者點選終端機面板右上角的加號按鈕可以在終端機中啟動一個新的命令列應用。這通常是有效的,當你需要使用不同的命令列應用來執行不同的工作時。

    如果 Visual Studio Code 工作區包含了多個根目錄,那麽需要選擇在哪個根目錄新增終端機。

    如何在終端機中啟動不同的命令列應用(殼層程式)?

    一般情況下,Visual Studio Code 會使用預設終端機設定檔案,並啟動該設定所指定的命令列應用,如果你希望使用其他命令列應用,那麽應使用其對應的終端機設定檔案。點選終端機面板右上角的加號按鈕旁邊的箭頭符號按鈕,將列出所有可用的終端機設定檔案,任意選擇一個即可啟動該終端機設定檔案對應的命令列應用。或者,在命令選擇區中輸入並執行命令Terminal: Create New Terminal (With Profile),然後選擇需要啟動的終端機設定檔案。

    設定檔案

    如果希望了解如何設定預設的 Visual Studio Code 終端機設定檔案或更多關於終端機設定檔案的資訊,你可以檢視設定預設的設定檔案一段或Visual Studio Code 終端機設定檔案使用說明一節。

    終端機問題

    如何在編輯器區域中新增終端機?

    命令選擇區中輸入並執行命令Terminal: Create New Terminal in Editor Area,可以在編輯器區域啟動新的命令列應用(殼層程式),而執行命令Terminal: Create New Terminal in Editor Area to the Side會在編輯器區域的右側啟動新的命令列應用。

    如何變更新增終端機的顯示位置?

    預設情況下,在執行新增終端機的操作後,被啟動的命令列應用(殼層程式)將顯示在終端機面板中,通過 Visual Studio Code 的設定項terminal.integrated.defaultLocation可以變更新增命令列的顯示位置,該設定項的有效值包含以下幾種。

    view是設定項terminal.integrated.defaultLocation的預設值,他表示新增的命令列將顯示在終端機面板中。editor表示新增的命令列將顯示在編輯器區域。

    settings.json
    {
    	// 新的命令列應用將顯示在編輯器區域中
    	"terminal.integrated.defaultLocation": "editor",
    }

    Visual Studio Code 終端機的目前工作目錄

    預設情況下,終端機所開啟的命令列應用(殼層程式)會將工作區的根目錄作為其目前工作目錄,你可以通過設定項terminal.integrated.cwd來指定命令列應用的目前工作目錄。

    由於分割終端機而產生的新命令列應用,其目前工作目錄可能由原有命令列應用決定,具體請檢視分割和取消分割終端機一段。

    settings.json
    {
    	// 將工作區的 src 資料夾作為命令列的目前工作目錄
    	"terminal.integrated.cwd": "src",
    }

    如何將 Visual Studio Code 中的資料夾作為被開啟的終端機的目前工作目錄?

    檔案總管中,選擇某個資料夾的操作功能表項在整合式終端機中開啟在外部終端機中開啟,即可開啟命令列應用並將該資料夾作為命令列的目前工作目錄。

    Visual Studio Code 終端機中的自動換行

    雖然一些命令列應用(殼層程式)自身擁有自動換行功能,但一些文字可能依然無法顯示在終端機面板中。你可以選擇命令列應用的操作功能表項將 [大小] 切換為 [內容寬度],或使用鍵盤快速鍵Alt+Z,或在命令選擇區中輸入並執行命令Terminal: Toggle Size to Content Width來設定是否啟用終端機的自動換行功能,啟用該功能將使得命令列中的所有內容顯示在可見的區域中。

    Visual Studio Code 終端機的緩沖區

    命令列應用(殼層程式)中顯示的命令和輸出結果,存放在終端機的緩沖區中,該緩沖區的大小可以通過設定項terminal.integrated.scrollback修改,預設值為1000,即最多可保留1000行的資訊。這裏需要指出,終端機的緩沖區能夠保留的最多行數可能與設定項terminal.integrated.scrollback不同。

    Visual Studio Code 將根據終端機緩沖區的大小來分配記憶體

    當你通過設定項terminal.integrated.scrollback增加終端機的緩沖區大小時,Visual Studio Code 所占用的記憶體也將增加,這些記憶體會被預先分配,以提供流暢的使用者體驗。

    settings.json
    {
    	// 命令列可以保留 200 行的資訊
    	"terminal.integrated.scrollback": 200,
    }

    Visual Studio Code 終端機中的複製和貼上操作

    終端機中的複製和貼上操作與其所在的作業系統相同,在 Windows 中可以使用鍵盤快速鍵Ctrl+CCtrl+V進行複製和貼上,在 Linux 中可以使用鍵盤快速鍵Ctrl+Shift+CCtrl+Shift+V進行複製和貼上,在 macOS 中可以使用鍵盤快速鍵⌘+C⌘+V進行複製和貼上。

    除了上述鍵盤快速鍵,終端機還提供了以下命令選擇區命令來完成一些複製和貼上操作。

    命令Terminal: Copy Last Command and Output可用於複製命令列中最後一條被執行的命令和其輸出結果。命令Terminal: Copy Last Command可用於複製命令列中最後一條被執行的命令。命令Terminal: Copy Last Command Output可用於複製命令列中最後一條被執行的命令的輸出結果。

    命令Terminal: Paste into Active Terminal可用於將內容貼上至目前使用中的命令列應用。

    另外,一些滑鼠操作也可以實作文字的複製和貼上,具體請檢視滑鼠操作一段。

    如何自動複製終端機中選取的內容?

    預設情況下,選取命令列應用(殼層程式)中的內容,並不會自動複製他們,你可以將設定項terminal.integrated.copyOnSelection設定為true,以自動複製選取的內容。

    settings.json
    {
    	// 自動複製選取的內容
    	"terminal.integrated.copyOnSelection": true,
    }

    如何停用或啟用終端機中的貼上警告?

    如果終端機所開啟的命令列應用(殼層程式)不支援括弧貼上模式(Bracketed Paste Mode)並且不是由readline處理貼上內容,那麽當你嘗試為命令列貼上多行文字時,Visual Studio Code 將顯示貼上警告「是否確實要將 … 行文本貼至終端?」,此時,有三個選擇,其中「貼上」表示將多行文字貼上至命令列,「貼上作為一行」表示將多行文字轉換為單行文字並貼上至命令列,「取消」表示不執行貼上操作。

    要停用上述貼上警告,需要將設定項terminal.integrated.enableMultiLinePasteWarning設定為never,該設定項還擁有以下有效值。always表示 Visual Studio Code 總是在貼上多行文字時顯示警告(是否顯示警告視具體命令列應用而定)。auto是設定項terminal.integrated.enableMultiLinePasteWarning的預設值,表示當命令列不支援括弧貼上模式並且不是由readline處理貼上內容時,貼上多行文字至命令列將導致 Visual Studio Code 顯示貼上警告。

    settings.json
    {
    	// 停用貼上警告
    	"terminal.integrated.enableMultiLinePasteWarning": "never",
    }

    Visual Studio Code 終端機的尋找操作

    終端機所開啟的命令列應用(殼層程式)處於活動狀態時,使用鍵盤快速鍵Ctrl+F,或者在命令選擇區中輸入並執行命令Terminal: Focus Find將開啟尋找小工具

    除了通過尋找小工具進行尋找的相關操作,終端機還提供了一些鍵盤快速鍵(一般需要命令列處於活動狀態)和命令選擇區命令來實作相同的效果。

    鍵盤快速鍵Alt+R和命令Terminal: Toggle Find Using Regex可用於設定是否采用正規表達式進行尋找。鍵盤快速鍵Alt+W和命令Terminal: Toggle Find Using Whole Word可用於設定是否采用全字拼字。鍵盤快速鍵Alt+C和命令Terminal: Toggle Find Using Case Sensitive可用於設定是否區分大小寫。

    鍵盤快速鍵Shift+Enter(需要尋找小工具處於活動狀態)和命令Terminal: Find Next可用於尋找下一個符合條件的文字。鍵盤快速鍵Enter(需要尋找小工具處於活動狀態)和命令Terminal: Find Previous可用於尋找上一個符合條件的文字。

    鍵盤快速鍵Escape和命令Terminal: Hide Find可用於隱藏尋找小工具

    Visual Studio Code 終端機中的選擇操作

    對於終端機所開啟的命令列應用(殼層程式),macOS 提供了鍵盤快速鍵⌘+A來選擇命令列中的所有內容,而 Linux/Windows 並未提供全選操作的鍵盤快速鍵,因此,你可能無法在命令列中使用Ctrl+A進行全選。替代方案是在命令選擇區中執行命令Terminal: Select All,這將選擇命令列的全部內容。

    此外,終端機還提供了以下鍵盤快速鍵(一般需要命令列處於活動狀態)和命令選擇區命令來完成一些選擇操作。

    命令Terminal: Select To Next Line可用於選擇命令列的下一行,再次執行該命令將選擇更多內容。命令Terminal: Select To Previous Line可用於選擇命令列的上一行,再次執行該命令將選擇更多內容。

    鍵盤快速鍵Ctrl+Shift+DownArrow和命令Terminal: Select To Next Command可用於選擇命令列中的下一個命令和其輸出結果,再次執行該命令將選擇更多內容。鍵盤快速鍵Ctrl+Shift+UpArrow和命令Terminal: Select To Previous Command可用於選擇命令列中的上一個命令和其輸出結果,再次執行該命令將選擇更多內容。

    鍵盤快速鍵Escape和命令Terminal: Clear Selection可用於取消選擇。

    Visual Studio Code 終端機中的滑鼠操作

    在不同的作業系統中,終端機會以不同的方式處理滑鼠的右鍵按一下操作。在 Windows 中,按一下滑鼠右鍵將複製命令列中被選擇的內容或貼上已複製的內容,在 Linux 中,按一下滑鼠右鍵將快顯操作功能表,在 macOS 中,按一下滑鼠右鍵將選擇滑鼠處的文字並快顯操作功能表。

    如何改變在終端機中按一下滑鼠右鍵時的行為?

    如果你希望改變在命令列中按一下滑鼠右鍵時的行為,那麽可以使用設定項terminal.integrated.rightClickBehavior,該設定項擁有以下有效取值。

    default表示按一下滑鼠右鍵將在命令列中顯示操作功能表。copyPaste表示在按一下滑鼠右鍵時,在命令列中複製已選擇的內容或貼上已複製的內容。paste表示在按一下滑鼠右鍵時,在命令列中貼上已複製的內容。selectWord表示在按一下滑鼠右鍵時,選擇滑鼠處的文字並快顯操作功能表。nothing表示在按一下滑鼠右鍵時,不執行任何操作並將滑鼠事件傳遞給命令列應用。

    settings.json
    {
    	// 按一下滑鼠右鍵時將選擇滑鼠處的文字,並顯示操作功能表
    	"terminal.integrated.rightClickBehavior": "selectWord",
    }

    如何改變在終端機中按一下滑鼠中鍵時的行為?

    如果你希望改變在命令列中按一下滑鼠中鍵時的行為,那麽可以使用設定項terminal.integrated.middleClickBehavior,該設定項擁有以下有效取值。

    default表示按一下滑鼠中鍵將使命令列獲得焦點。paste表示在按一下滑鼠中鍵時,在命令列中貼上已複製的內容。

    settings.json
    {
    	// 按一下滑鼠中鍵時執行貼上操作
    	"terminal.integrated.middleClickBehavior": "paste",
    }

    如何通過滑鼠在終端機中快速移動遊標?

    終端機所開啟的命令列應用(殼層程式)中,按住Alt鍵(macOS 中為Option)並按一下滑鼠左鍵可以快速的移動命令列的遊標。由於此功能是通過模擬鍵盤操作來實作的,因此在一些命令列應用中可能無效。通過將設定項terminal.integrated.altClickMovesCursor設定為false可停用此功能。

    settings.json
    {
    	// 按住 Alt 鍵並點選滑鼠左鍵時不再移動遊標
    	"terminal.integrated.altClickMovesCursor": false,
    }

    如何通過滑鼠調整終端機的字型大小?

    如果將設定項terminal.integrated.mouseWheelZoom設定為true(預設值為false),那麽在終端機中按住Ctrl鍵,然後捲動滑鼠滾輪可以調整命令列應用的字型大小,這等同於修改設定項terminal.integrated.fontSize

    需要指出的是,上述效果可能不會立即觸發,因為滑鼠滾輪會首先滾輪命令列應用的緩沖區。

    settings.json
    {
    	// 按住 Ctrl 鍵並捲動滑鼠可以縮放字型
    	"terminal.integrated.mouseWheelZoom": true,
    }

    如何調整滑鼠在終端機中的捲動速度?

    設定項terminal.integrated.mouseWheelScrollSensitivity可用於調整滑鼠在終端機中的捲動速度,比如設定為2,表示捲動速度為預設的2倍。

    settings.json
    {
    	// 滑鼠捲動速度為預設的 2 倍
    	"terminal.integrated.mouseWheelScrollSensitivity": 2,
    }

    如何強製由終端機來處理滑鼠行為?

    終端機所開啟的命令列中,一些正在執行的程式可能會接管對滑鼠行為的處理,比如支援滑鼠的Vim,如果希望依然由命令列來處理滑鼠行為,那麽需要按住Alt鍵(macOS 中為Option)。對於 macOS 來說,還需要將設定項terminal.integrated.macOptionClickForcesSelection設定為true

    Visual Studio Code 終端機中的輸入操作

    如果你希望快速的在終端機所開啟的命令列應用(殼層程式)中輸入檔案或資料夾的路徑,那麽可以將這些檔案或資料夾拖放到命令列中,路徑將進行必要的跳脫然後被輸入至命令列。

    命令選擇區中輸入並執行命令Terminal:Run Selected Text In Active Terminal,Visual Studio Code 會將目前編輯器中已被選擇的文字作為命令在終端機中執行,如果沒有選擇任何文字,則編輯器遊標所在的整個行將作為命令。

    命令選擇區中輸入並執行命令Terminal: Run Active File In Active Terminal,Visual Studio Code 會將目前檔案作為命令在終端機中執行。

    使用鍵盤快速鍵Ctrl+Alt+R(需要命令列應用處於活動狀態)或在命令選擇區中輸入並執行命令Terminal: Run Recent Command…,可以選擇並執行某個最近執行過的命令。

    如何在將目前編輯器中已選擇文字作為命令之後使終端機獲得焦點?

    如果將設定項terminal.integrated.focusAfterRun設定為terminal,那麽在命令選擇區中輸入並執行命令Terminal: Run Selected Text In Active Terminal後,終端機將獲得焦點。

    settings.json
    {
    	// 執行命令之後使命令列獲得焦點
    	"terminal.integrated.focusAfterRun": "terminal",
    }

    變更 Visual Studio Code 終端機的名稱,圖示,色彩

    當你在終端機面板中啟動了多個命令列應用(殼層程式)時,這些命令列應用的名稱和圖示可能相同,區分他們會比較困難。此時,可通過選擇操作功能表項重新命名…變更圖示…變更色彩…來修改命令列應用的名稱,圖示以及圖示的色彩。

    當然,在命令選擇區中輸入並執行命令Terminal: Change Icon…Terminal: Change Color…可以實作相同的效果。

    設定檔案,外觀和樣式

    如果希望使用終端機設定檔案來修改命令列應用的名稱,圖示以及圖示色彩,你可以檢視設定 Visual Studio Code 終端機的名稱,圖示,色彩一段。如果希望指定命令列應用的預設名稱,說明,圖示和圖示色彩,你可以檢視自訂 Visual Studio Code 終端機索引標簽的預設名稱,說明,圖示,色彩一段。

    移動 Visual Studio Code 終端機

    終端機面板中的命令列應用(殼層程式)擁有對應的圖示和名稱,使用滑鼠拖放圖示或名稱,可以使命令列應用在終端機面板與編輯器區域之間移動,或使命令列應用獨立成為一個新的視窗(拖放至 Visual Studio Code 視窗之外),或改變命令列應用之間的順序(如果是分割的命令列,則所有相關命令列將作為一個整體被移動)。

    此外,通過選擇命令列應用的操作功能表項將終端移入編輯器區域將終端機移至新視窗將終端移入面板,或在命令選擇區中輸入並執行命令Terminal: Move Terminal into Editor AreaTerminal: Move Terminal into New Window可以達成相同的目標。

    Visual Studio Code檔案總管終端機問題pwsh編輯器區域

    分割和取消分割 Visual Studio Code 終端機

    如果你希望更方便的對比命令列中的輸出結果,那麽可以分割終端機,這相當於啟動一個新的命令列應用(殼層程式),新的命令列顯示在原有命令列的右邊,並與其組成一個命令列組。

    要分割終端機,可以點選命令列對應的圖示和名稱旁邊的分割按鈕(如果終端機面板包含了多個命令列,那麽需要將滑鼠暫留在命令列的圖示或名稱上),或按住Alt鍵並點選出現的分割按鈕,或選擇某個命令列對應的操作功能表項分割終端機,或點選終端機面板右上角的加號按鈕旁邊的箭頭符號按鈕,然後選擇功能表項分割終端,或在終端機面板中拖放命令列對應的圖示和名稱,或在活動的命令列應用中使用鍵盤快速鍵Ctrl+Shift+5,或在命令選擇區中輸入並執行命令Terminal: Split Terminal

    要取消分割終端機,可以選擇命令列對應的操作功能表項取消分割終端機,或在命令選擇區中輸入並執行命令Terminal: Unsplit Terminal

    終端機問題pwsh分割區域

    如何在分割終端機時設定新終端機的目前工作目錄?

    在分割終端機時,會產生一個新的命令列應用(殼層程式),通過設定項terminal.integrated.splitCwd,可以設定新命令列的目前工作目錄,該設定項擁有以下有效值。

    inherited是設定項terminal.integrated.splitCwd的預設值,他表示新命令列的目前工作目錄與原有命令列的目前工作目錄相同。initial表示新命令列的目前工作目錄與原有命令列的初始工作目錄(命令列啟動時的目前工作目錄)相同。workspaceRoot表示新命令列的目前工作目錄為工作區的根目錄,如果根目錄有多個,則需要進行選擇。

    關於命令列應用的目前工作目錄,請檢視終端機的目前工作目錄一段。

    settings.json
    {
    	// 新的命令列應用的目前工作目錄為工作區的根目錄
    	"terminal.integrated.splitCwd": "workspaceRoot",
    }

    如何在已分割的終端機之間導覽?

    當任意被分割的命令列處於活動狀態時,可以使用鍵盤快速鍵Alt+LeftArrowAlt+RightArrow在命令列組的相關命令列之間導覽。

    終止 Visual Studio Code 終端機

    如果終端機啟動了過多的命令列應用(殼層程式),則可以點選其對應的終止(垃圾桶)按鈕,或其對應的操作功能表項終止終端機,來終止命令列應用。終止按鈕一般位於終端機面板的右上角,如果終端機面板包含多個命令列,那麽終止按鈕將位於終端機面板的右邊區域,當滑鼠暫留時會出現,此時,對於選取並處於活動狀態的命令列應用,按下Delete鍵也可以將其終止。

    此外,在命令選擇區中輸入並執行命令Terminal: Kill the Active Terminal Instance,可以終止終端機面板中目前使用中的命令列應用(對編輯器區域中的命令列應用無效),輸入並執行命令Terminal: Kill the Active Terminal in Editor Area,可以終止編輯器區域中目前使用中的命令列應用,輸入並執行命令Terminal: Kill All Terminals,可以終止 Visual Studio Code 中所有的命令列應用。

    終止終端機與隱藏終端機的區別

    使用鍵盤快速鍵Ctrl+`或執行命令View: Toggle Terminal隱藏終端機並不會終止命令列應用(殼層程式),命令列中正在執行的命令也將繼續執行。

    終端機問題

    內容分類

    原始碼

    settings.json·codebeatme/vscode·GitHub

    講解影片

    VSCode 新增開啟終端機的幾種方式·YouTube