Visual Studio Code 工作使用和設定說明
訂閱 480
VSCode 建立和執行自訂工作影片示範 YouTube
Visual Studio Code 工作
Visual Studio Code(VSCode)工作允許你設定和執行特定的命令、腳本或應用程式,以完成特定的開發工作。例如,你可以設定一個工作來執行 Windows 命令提示字元中的命令,用於複製檔案或執行批次檔。
在 Visual Studio Code 中建立自訂工作
要建立自訂工作,可以通過以下兩種方式。通過功能表項終端機 | 設定工作…,或執行 VSCode 命令Tasks: Configure Task。
在設定工作時,VSCode 會顯示一個面板,並提供一些選項。如果點選從範本建立 tasks.json 檔案,然後選擇Others選項,那麽將建立一個簡單的執行命令的工作echo,用於顯示資訊。
完成工作的設定後,VSCode 會在工作區資料夾的.vscode目錄中建立tasks.json檔案,該檔案包含所有自訂工作的資訊。
選擇工作偵測或其他範本
如果你使用了其他的工具(比如,gulp),那麽 VSCode 還會針對性的提供相應的偵測功能。這將根據已經編寫的程式碼,來建立工作。
此外,一些範本,比如MSBuild、.Net Core,可建立專門用於執行 msbuild 或 dotnet 命令的工作。
設定工作操作沒有反應
請註意,如果執行設定工作操作沒有反應,可能是因為tasks.json檔案已經存在。
執行 Visual Studio Code 自訂工作
工作建立後,可通過以下方式執行。使用功能表項終端機 | 執行工作…,或執行 VSCode 命令Tasks: Run Task。
選擇之前建立的工作echo,點選在不掃描工作輸出的情況下繼續,即可在終端機面板中看到輸出結果Hello。
Visual Studio Code 工作檔案 tasks.json
當需要修改現有工作或新增新工作時,可以直接編輯.vscode目錄中tasks.json檔案。該檔案的tasks屬性是包含工作的陣列,每個工作對應一個物件。要建立新工作,只需在該陣列中新增新的工作物件即可。
對於工作物件,一般擁有以下屬性。
- label 屬性
label屬性為工作的名稱,顯示在選擇面板中。- detail 屬性
detail屬性為工作的詳細說明,用於提供更多上下文資訊。- icon 屬性
icon屬性是一個表示工作圖示的物件,該物件的屬性id為圖示形狀,屬性color為圖示色彩。- group 屬性
group屬性表示工作所在的執行組,有效值如下:build為組建工作,test為測試工作,none表示工作不屬於任何組。- type 屬性
type屬性為工作的類型,有效值如下:process表示工作為處理序,shell表示工作是一個命令。- command 屬性
command屬性與工作的類型(type屬性)有關,可以包含 VSCode 變數。如果工作為處理序,那麽
command屬性是指向可執行目標的路徑(絕對或相對路徑,如果使用相對路徑,則預設相對於 VSCode 工作區目錄)。如果工作為命令,那麽command屬性是需要在 VSCode 終端機中執行的命令。- hide 屬性
如果
hide屬性為true,那麽工作不會出現在工作選擇面板中(預設顯示)。
{
"version": "2.0.0",
"tasks": [
{
// 工作名稱
"label": "My task",
// 工作說明
"detail": "This is a test task",
// 工作圖示
"icon": {
"id": "alert",
"color": "terminal.ansiCyan",
},
// 工作不在任何執行組中
"group": "none",
// 執行工作區根目錄下的 test.bat
"type": "process",
"command": "${workspaceFolder}\\test.bat",
// 不在工作選擇面板中隱藏工作
"hide": false,
},
]
}設定 Visual Studio Code 工作的目前工作目錄
如果你希望為工作設定目前工作目錄,那麽只需在tasks.json檔案中,為工作物件增加options屬性,該屬性是一個物件,其cwd屬性即為工作的目前工作目錄。
設定不存在的工作目錄
如果將工作目錄設定為不存在的路徑,那麽工作可能會執行失敗。
下面的工作,將執行批次檔Z:\code\test.bat。
{
"version": "2.0.0",
"tasks": [
{
"label": "My Task 2",
"type": "process",
"command": "test.bat",
"options": {
"cwd": "Z:\\code\\"
}
},
]
}設定預設的 Visual Studio Code 工作
VSCode 快速執行某個工作(繫結鍵盤快速鍵),以及設定預設工作影片示範 YouTube
使用功能表項終端機 | 設定預設組建工作…或執行 VSCode 命令Tasks: Configure Default Build Task,從面板中選擇一個工作,即可將該工作設定為預設組建工作。
執行 VSCode 命令Tasks: Configure Default Test Task,從面板中選擇一個工作,即可將該工作設定為預設測試工作。
以上兩種方式,相當於將工作物件的group屬性,設定為包含kind和isDefault屬性的物件。其中,kind屬性為build(組建工作)或test(測試工作),isDefault屬性為true(表示該工作為預設工作)。
一旦設定了預設組建工作,就可以使用鍵盤快速鍵Ctrl+Shift+B,或命令Tasks: Run Build Task來快速執行預設組建工作。一旦設定了預設測試工作,就可以命令Tasks: Run Test Task來快速執行預設測試工作。
當有多個預設工作時
如果多個工作都被設為預設工作,則執行階段可能仍需手動選擇。
為 Visual Studio Code 工作繫結鍵盤快速鍵
VSCode 快速執行某個工作(繫結鍵盤快速鍵),以及設定預設工作影片示範 YouTube
除了預設組建工作,你還可以為其他工作繫結鍵盤快速鍵。首先,按下Ctrl+K Ctrl+S開啟鍵盤快速鍵面板。然後,切換到 JSON 編輯模式(點選右上角圖示),在keybindings.json中新增一個物件,用於繫結某個工作,該物件的屬性如下。
- key 屬性
key屬性是與工作繫結的鍵盤快速鍵。- command 屬性
command屬性應該設定為workbench.action.tasks.runTask,表示鍵盤快速鍵將執行工作。- args 屬性
args屬性為需要執行的工作的名稱。
在下面的範例中,為工作echo指定了鍵盤快速鍵Ctrl+T Ctrl+E。
[
{
"key": "ctrl+t ctrl+e",
"command": "workbench.action.tasks.runTask",
"args": "echo",
},
]除了繫結特定工作,你還可以為常用的與工作相關的命令,設定鍵盤快速鍵。
[
{
"key": "ctrl+shift+t",
// 選擇並執行工作
"command": "workbench.action.tasks.runTask",
},
{
"key": "ctrl+shift+r",
// 執行上一次執行的工作
"command": "workbench.action.tasks.reRunTask",
},
]為 Visual Studio Code 工作設定參數
VSCode 為工作設定參數和環境變數影片示範 YouTube
當工作類型為shell時,可直接將完整命令和參數作為一個字串,寫入屬性command中,或者將命令和參數組成一個陣列作為command屬性的值。當然,為了提高可讀性和維護性,也可使用args屬性(陣列)單獨包含參數。
當工作類型為process時,必須使用args屬性(陣列)來傳遞參數。
下面的範例,工作withargs1和withargs2均顯示資訊Hello World,工作withargs3顯示目錄Z:\下的內容,工作withargs4將參數Jack和12傳遞給批次檔show.bat(位於 VSCode 工作區根目錄)。
{
"label": "withargs1",
"type": "shell",
"command": "Write-Output 'Hello World'",
},
{
"label": "withargs2",
"type": "shell",
"command": "Write-Output",
"args": ["Hello World"],
},
{
"label": "withargs3",
"type": "shell",
"command": [
"Get-ChildItem",
"-Path Z:\\",
],
},
{
"label": "withargs4",
"type": "process",
"command": "show.bat",
"args": [
"Jack",
"12"
]
},echo %1's age is %2REM 工作 withargs4 的執行結果
Jack's age is 12為 Visual Studio Code 工作設定環境變數
VSCode 為工作設定參數和環境變數影片示範 YouTube
如果希望為工作設定環境變數,那麽可為tasks.json檔案中的工作物件增加options屬性,該屬性的env屬性是包含環境變數的物件(物件的屬性名稱為環境變數的名稱,物件的值為環境變數的值),可以包含 VSCode 變數。
下面的範例,工作today將顯示環境變數TODAY,此變數已經被設定為了2025-5-24。
{
"label": "today",
"type": "shell",
"command": "$env:TODAY",
"options": {
"env": {
"TODAY": "2025-5-24"
}
}
},2025-5-24一次執行多個 Visual Studio Code 工作
VSCode 一次執行多個工作,以及設定工作執行順序影片示範 YouTube
如果你希望一次執行多個工作,那麽可以為檔案tasks.json的工作物件,新增dependsOn屬性,該屬性是一個陣列,包含目前工作(目前工作本身不需要設定command和type屬性)所相依的所有工作名稱。
此外,使用工作物件的dependsOrder屬性,可以控製依賴工作的執行順序。該屬性可以取以下有效值:parallel(預設值)表示平行執行所有依賴工作,sequence表示按依賴工作的出現順序執行。
下面的範例,工作withargs1和withargs2將依次執行。
{
"label": "multi",
"dependsOn": [
"withargs1",
"withargs2"
],
"dependsOrder": "sequence",
},原始碼
tasks.json·codebeatme/vscode·GitHub
keybindings.json·codebeatme/vscode·GitHub
show.bat·codebeatme/vscode·GitHub
講解影片
VSCode 建立和執行自訂工作·YouTube
VSCode 快速執行某個工作(繫結鍵盤快速鍵),以及設定預設工作·YouTube
VSCode 為工作設定參數和環境變數·YouTube
VSCode 一次執行多個工作,以及設定工作執行順序·YouTube