vscode用了一段時間了, 發現確實比較好用,不過有個地方讓人很不爽,就是它默認只有編譯的功能(按 Ctrl+Shift+B), 沒有自動執行的功能。要想執行編譯后的程序查看結果,還要每次在PowerShell下寫個.\xxx.exe, 煩死了,今天實在是受不了,終於找到了解決辦法。
主要參考了這篇文章:VSCODE 一鍵編譯運行 ,不過這哥們的環境是在linux下的,而我因為不方便使用Vmware, 所以一般都是在Windows下使用MinGW來做驗證。
關於如何在VScode下配置C++運行環境以及Task的概念,請參考微軟官方的說明:https://code.visualstudio.com/docs/cpp/config-mingw, 里面詳細介紹了如何運行一個簡單的HelloWorld, 以及如何配置一個簡單的Task, 這里不再贅述。
主要說一下Windows下使用MinGw作為編譯器時task該如何配置:
{ "version": "2.0.0", "tasks": [ { "type": "shell", "label": "build", "command": "E:\\sys\\devcpp\\Dev-Cpp\\MinGW64\\bin\\g++.exe", "args": [ "-g", "${file}", "-o", "${fileDirname}\\${fileBasenameNoExtension}.exe" ], "options": { "cwd": "${workspaceFolder}" }, "problemMatcher": [ "$gcc" ], "group": { "kind": "build", "isDefault": true }, "detail": "編譯器: E:\\sys\\devcpp\\Dev-Cpp\\MinGW64\\bin\\g++.exe" }, { "label": "run", "type": "process", "command": "${fileDirname}\\${fileBasenameNoExtension}.exe", //依賴build task(剛剛創建的那個),執行該task之前先執行build "dependsOn": [ "build" ], "presentation": { "echo": true, "reveal": "always", //自動聚焦 "focus": true, //共享控制台,利用之前的控制台,並不重新創建 "panel": "shared", "showReuseMessage": true, //啟動之前清理控制台輸出 "clear": true } } ] }
修改的主要是標紅的地方,
“type” 代表任務類型,自定義任務可以設置為“shell” 或 “process”, 設置為shell的話,后面跟的command會被解釋成shell指令,設置成 process的話,后面跟的command會被當做單獨的進程去被執行。
"command" 我就寫成了要執行的程序名字。
關於自定義task的詳細配置請參考:https://code.visualstudio.com/docs/editor/tasks
最后不要忘了給task重新綁定一個快捷鍵:
ctrl+shift+P打開全局終端,輸入open keyboard shutcuts.打開鍵盤快捷鍵設置
打開 keybindings.json 文件,添加如下配置
{ "key": "ctrl+shift+r", "command": "workbench.action.tasks.runTask", "args": "run" }
這樣就把Ctrl+Shift+R按鍵綁定到我們自定義的Task上,每次我們按下這組快捷鍵時,就會自動執行編譯和運行動作。