如何将Visual Studio Code设置为像Codeblocks/Dev-C++那样用系统终端运行程序?
让VSCode使用系统终端运行程序的配置方法
我完全理解你的需求——习惯了Code::Blocks或者Dev-C++那种调用系统终端运行程序的方式后,VSCode默认的集成终端确实可能显得不够直观,尤其是在输出清晰度上。我之前也折腾过这个配置,下面分享几个亲测可行的方法,分场景给你说明:
一、编译运行任务(Ctrl+Shift+B)用外部终端
如果是通过生成任务来编译运行程序,需要修改项目的tasks.json文件:
- 打开你的C/C项目,按下
Ctrl+Shift+B,如果还没有tasks.json,VSCode会提示你创建,选择对应的编译器(比如g)生成默认配置。 - 打开生成的
tasks.json,在任务配置里添加presentation字段并设置external: true,示例如下:
{ "version": "2.0.0", "tasks": [ { "type": "cppbuild", "label": "C/C++: g++.exe 生成活动文件", "command": "C:\\mingw64\\bin\\g++.exe", "args": [ "-fdiagnostics-color=always", "-g", "${file}", "-o", "${fileDirname}\\${fileBasenameNoExtension}.exe" ], "options": { "cwd": "${fileDirname}" }, "problemMatcher": ["$gcc"], "group": { "kind": "build", "isDefault": true }, "detail": "编译器: C:\\mingw64\\bin\\g++.exe", "presentation": { "reveal": "always", "external": true // 关键:启用外部系统终端 } } ] }
保存后再按Ctrl+Shift+B,就会自动弹出系统默认终端来执行编译后的程序了。
如果担心终端运行完一闪而过,可以修改命令逻辑,让程序运行后暂停:
比如把command改成cmd,通过/c参数串联编译、运行、暂停操作:
"command": "cmd", "args": [ "/c", "g++ -g ${file} -o ${fileDirname}\\${fileBasenameNoExtension}.exe && ${fileDirname}\\${fileBasenameNoExtension}.exe && pause" ]
二、调试模式(F5)用外部终端
如果习惯用F5调试程序,需要修改launch.json配置:
- 按下
F5,选择C/C++调试环境,生成默认的launch.json。 - 找到
externalConsole字段,设置为true,示例:
{ "version": "0.2.0", "configurations": [ { "name": "g++.exe - 生成和调试活动文件", "type": "cppdbg", "request": "launch", "program": "${fileDirname}\\${fileBasenameNoExtension}.exe", "args": [], "stopAtEntry": false, "cwd": "${fileDirname}", "environment": [], "externalConsole": true, // 关键:启用外部控制台 "MIMode": "gdb", "miDebuggerPath": "C:\\mingw64\\bin\\gdb.exe", "setupCommands": [ { "description": "为 gdb 启用整齐打印", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "C/C++: g++.exe 生成活动文件" } ] }
保存后按F5,系统终端会弹出,程序的输入输出和调试交互都会在这里进行,和Dev-C++的调试体验一致。
三、全局设置(所有项目默认用外部终端)
如果你希望所有新建项目都默认使用系统终端,可以修改VSCode的全局设置:
- 按下
Ctrl+,打开设置界面,搜索以下选项并调整:- terminal.explorerKind:设置为
external,让终端相关操作默认调用外部终端 - debug.externalConsole:勾选该选项,让所有调试场景默认使用外部控制台
- terminal.explorerKind:设置为
- 如果是Windows系统,还可以搜索terminal.integrated.defaultProfile.windows,选择你偏好的系统终端(比如CMD或PowerShell)
注意事项
- 确保你的编译器(比如MinGW)路径已经添加到系统环境变量
PATH中,否则外部终端可能找不到编译好的程序 - 修改
tasks.json或launch.json后一定要保存,否则设置不会生效 - 如果是Linux/macOS系统,暂停终端的方式可以换成
read -p "Press Enter to continue...",对应调整命令即可
内容的提问来源于stack exchange,提问作者Soyal7




