【技术文章】从 Dev C++ 到 Vscode
从 Dev C++ 到 Vscode
保姆级教程!
目录
- 概述
- 去哪里搞到 Vscode ?
- 我的中文呢?!还有 C++ 语言支持去哪里了?!
- 编译功能去哪里了?!
- 我的 “请按任意键继续” 以及运行时间统计去哪里了?!
- 直接运行功能去哪里了?!
- 我的各种主题设置还有缺省源去哪里了?!
- 【拓展】你说可以多语言代码编辑,去哪里了?!还有我的 Markdown 呢?
注:本教程假定你已经习惯了使用 Dev C++,并且你的操作系统为 Windows。
概述
“我用 Dev C++ 用得好好的,为什么要换成 Vscode 呢?”
你说得对,但是听我慢慢讲。
为什么选择 Vscode(Visual Studio Code)
主要有以下这几点:
- 跨平台支持:Vscode 可以在 Windows、Mac 和 Linux 上运行可以在多个操作系统上使用。
- 丰富的插件生态系统:Vscode 有大量的插件可供选择,无论是您需要的任何语言支持、调试工具、测试框架还是自动化工具,都可以从 Vscode 扩展商店中找到。
- 轻量级但功能强大:Vscode 相对于其他一些 IDE(例如 PyCharm、WebStorm)来说更加轻量级,启动速度更快,对系统资源的要求更低。同时,它也提供了很多必要的功能,例如代码提示、语法高亮、自动完成等。
- 自定义程度高:Vscode 的配置非常灵活,您可以根据自己的需要调整编辑器设置、快捷键、主题等。如果您不喜欢某个插件,也可以轻松地禁用或删除它。
- 免费或低成本:Vscode 是开源的,并且可以免费使用。如果您需要一些额外的功能或插件,可以选择从扩展商店中下载安装,或者直接为开源项目贡献代码以获得更多功能。
- 远程开发:Vscode 提供远程开发功能,可以自如的在任何地方编辑你的程序。
省流:远程开发、跨平台、灵活、拓展插件。
超级省流:好用,迁移成本低
“好好好,就用 Vscode,但是我要从 Dev C++ 迁移过来太麻烦了!”
并不麻烦,接下来我就来讲讲怎么迁移。
STEP 1 去哪里搞到 Vscode ?
好问题,接下来教你怎么下载。
首先访问 Vscode 官网的下载界面:Download Visual Studio Code - Mac, Linux, Windows
随后找到你所对应的系统,下载!安装!然后就没了。
”我没有管理员权限,安装不了!“
非常简单,下载 zip 版本就可以了,这就是所谓的绿色版。
STEP 2 我的中文呢?!还有 C++ 语言支持去哪里了?!
别着急,我们先解决中文的问题。
点击标红的”扩展“按钮。
然后进去搜索 ”Chinese“
安装第一个即可。
然后就是 C++。
同样是点击”扩展“按钮。
然后依次安装如下插件:
- C++ Extension Pack
- Code Runner
- Competitive Programming Helper (cph)
- One Dark Pro
- vscode-icons
- Fluent Icons
- Prettier
- C/C++ Compile Run(upd on 2024/2/15:注意!一定要安装 1.0.50 版本的!最新的版本弹出窗口运行会有问题!)
然后重启 Vscode,搞定!
STEP 3 编译功能去哪里了?!
你先别急。
刚刚不是安装了一个 C / C++ Compile Run 吗。
我们给他稍稍配置一下:
首先,在你写代码的文件夹里新建一个 .vscode 文件夹。
然后在 .vscode 文件夹中新建一个 settings.json 文件
然后把下面的直接粘贴上去(可根据自己的需求更改)
{
"c-cpp-compile-run.save-before-compile": true,
"c-cpp-compile-run.run-in-external-terminal": true,
"c-cpp-compile-run.cpp-flags": "-std=c++14 -Wall -Wextra -lm -O2 -fno-ms-extensions -finput-charset=UTF-8 -fexec-charset=GBK", /*此处可更改为自己的编译选项*/
"c-cpp-compile-run.output-location": "."
}
然后编译!等等,怎么出错了?
(笔者注:就算您下载了 Dev C++,有其内置的编译器,也强烈建议您按照下述步骤下载最新版本的编译器,因为 CCF 规定的 C++ 版本为 C++14,而 Dev C++ 内置的编译器最多支持到 C++11 和少量 C++14)
出错的原因是没有找到编译器,去 https://winlibs.com/ 下载即可,下载好后解压到合适位置,并把解压后的 bin 文件夹添加到环境变量。
upd on 2024 / 2 / 15:貌似即使添加了环境变量,Vscode 依然会自动使用 Dev C++ 的内置编译器,需要在 settings.json 中添加一行,添加完后长这样:
{
"c-cpp-compile-run.save-before-compile": true,
"c-cpp-compile-run.run-in-external-terminal": true,
"c-cpp-compile-run.cpp-flags": "-std=c++14 -Wall -Wextra -lm -O2 -fno-ms-extensions -finput-charset=UTF-8 -fexec-charset=GBK",
"c-cpp-compile-run.output-location": ".",
"c-cpp-compile-run.cpp-compiler": "[path]/bin/g++.exe"
}
[path] 代表解压后的路径。
怎么添加环境变量?
- 在电脑桌面上找到“此电脑”或者“计算机”的图标,右键单击该图标,选择“属性”。
- 在打开的窗口的左侧,点击“高级系统设置”。
- 在弹出的系统属性对话框中,切换到“高级”标签,然后点击“环境变量”按钮。
- 在环境变量对话框中,可以看到两组变量,一组是用户变量,另一组是系统变量。如果只想为自己的用户账户添加路径,可以编辑用户变量;如果希望为整个系统添加路径,可以编辑系统变量。
- 点击对应变量的“路径”一行,然后点击“编辑”按钮。
- 在编辑环境变量对话框中,会看到当前在 PATH 变量中的所有路径列表。
- 要添加新的路径,可以点击列表底部的“新建”按钮,然后在弹出的对话框中输入或者复制粘贴路径。如果想浏览到特定路径,可以点击“浏览”按钮,然后在打开的文件浏览器中导航到所需路径。
- 要编辑任何路径,只需选择它,然后点击“编辑”按钮。如果不想要某个路径,可以选中它然后点击“删除”按钮。注意还可以在列表中上下移动项目。
- 完成上述操作后,需要点击“确定”按钮保存修改。在弹出的确认对话框中,再次点击“确定”按钮关闭窗口。
下载太慢了!
-
首先复制下载链接,找到位于最后面的文件名。
如:https://github.com/brechtsanders/winlibs_mingw/releases/download/13.2.0mcf-16.0.6-11.0.1-ucrt-r2/winlibs-x86_64-mcf-seh-gcc-13.2.0-llvm-16.0.6-mingw-w64ucrt-11.0.1-r2.zip
那么他的文件名就是 winlibs-x86_64-mcf-seh-gcc-13.2.0-llvm-16.0.6-mingw-w64ucrt-11.0.1-r2.zip。
-
然后然后进到 https://kkgithub.com/brechtsanders/winlibs_mingw/releases/
Ctrl + F 搜索文件名。
没搜索到?点击 Show all XXX assets(XXX 为数字),然后按下回车。
如果你要的版本比较后,那就往下滑,一直按,直到找到为止。
然后在里面点击文件名下载即可。
STEP 4 我的 “请按任意键继续” 以及运行时间统计去哪里了?!
我知道你很急,但你先别急。
找到你的用户目录(C:\Users\【用户名】,其中【用户名】代表你的用户名),接着依次访问 .vscode\extensions\
接着搜索 danielpinto8zz6.c-cpp-compile-run
点进去搜索出来的第一个文件夹,再点进去 dist 文件夹,
找到 extension.js 文件,拖进去 Vscode 里面。
然后按下 Shift + Alt + G,对代码进行格式化。
然后保存。接着跳转到第 2806 行。
将红框内的内容全部删掉。
改为:
start cmd /c "cd ${t} & consolepauser ${e.replace('"',"")}"
保存,重启!
然后,如果你有 Dev C++:
- 在电脑系统中,找到”Dev C++“快捷方式。
- 右键点击快捷方式。快捷方式上出现一个菜单。
- 在右键菜单中,点击“属性”按钮。
- 在属性的页面,点击“快捷方式”按钮。
- 点击“快捷方式”按钮后,进入快捷方式页面。
- 在快捷方式的页面,点击“打开文件的位置”按钮。
- 进入后,找到一个叫做 ”ConsolePauser.exe“ 的文件
- 将其复制到你编译器目录下的 bin 文件夹
- 搞定!
”这是新电脑,我是不是还要再安装一个 Dev C++?“
Of course not.
我这里提供一个 Dev C++ 5.11 版本的 ConsolePauser:
https://www.luogu.com.cn/problem/U360709
下载后按照上述的 7-9 步操作即可。
然后你就可以快乐地打代码,编译啦~
STEP 5 直接运行功能去哪里了?!
非常简单。
在配置文件(settings.json)中添加这几行:
"code-runner.executorMap": {
"c": "start consolePauser.exe ./$fileNameWithoutExt",
"cpp": "start consolePauser.exe ./$fileNameWithoutExt"
},
"code-runner.fileDirectoryAsCwd": true,
"code-runner.ignoreSelection": true,
"code-runner.runInTerminal": true
此时你的配置文件大概长这个样子:
{
"c-cpp-compile-run.save-before-compile": true,
"c-cpp-compile-run.run-in-external-terminal": true,
"c-cpp-compile-run.cpp-flags": "-std=c++14 -Wall -Wextra -lm -O2 -fno-ms-extensions -finput-charset=UTF-8 -fexec-charset=GBK", /*此处可更改为自己的编译选项*/
"c-cpp-compile-run.output-location": ".",
"code-runner.executorMap": {
"c": "start consolePauser.exe ./$fileNameWithoutExt",
"cpp": "start consolePauser.exe ./$fileNameWithoutExt"
},
"code-runner.fileDirectoryAsCwd": true,
"code-runner.ignoreSelection": true,
"code-runner.runInTerminal": true
}
然后,编译完之后,你就可以按下 Ctrl + Alt + N 直接运行啦。
STEP 6 我的各种主题设置还有缺省源去哪里了?!
这个就有点麻烦,不过别急。
我们先来解决缺省源的问题。
首先把你的缺省源写进去一个 C++ 文件里。
接着下载一个程序:
https://pan.huang1111.cn/s/LMM8S6,密码:lgnb
软件保证无毒,源码在 https://www.luogu.com.cn/paste/h9bgcuhw,使用 Python 编写,Pyinstaller 打包。
随后运行,按照程序的提示进行操作。
然后 Ctrl + A 选中所有 output.txt 中的内容,复制,然后按照如下步骤进行:
- 打开VScode,点击左下角的齿轮图标,选择“用户代码片段”。
- 在用户代码片段的配置文件中,选择“cpp.json”。
- 在“cpp.json”文件中,粘贴刚刚复制的内容。
- 保存并关闭“cpp.json”文件。此时,在新文件中输入你的触发词,再按下回车,就会出现刚才定义的代码片段。
接着我们来搞一搞主题设置。
这里给一个推荐的配置文件,含注释,其他的可以自行百度或者问我也行。
{
//针对编辑 JSON 的格式化设置。
"[json]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
"[jsonc]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
//Clang Format 默认格式化配置,如果不懂可以不管
"C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: webkit, AccessModifierOffset: -4, AlwaysBreakTemplateDeclarations: true, AllowShortBlocksOnASingleLine: true, AllowShortCaseLabelsOnASingleLine: true, AllowShortEnumsOnASingleLine: true, AllowShortFunctionsOnASingleLine: true, AllowShortIfStatementsOnASingleLine: AllIfsAndElse, AllowShortLambdasOnASingleLine: All, AllowShortLoopsOnASingleLine: true, ColumnLimit: 100, FixNamespaceComments: false, IndentWidth: 4, TabWidth: 4, UseTab: Never }",
//intellicode 设置
"C_Cpp.intelliSenseEngine": "default", //默认引擎
//Code Runner 直接运行代码的配置,上文讲过
"code-runner.executorMap": {
"c": "start consolePauser.exe ./$fileNameWithoutExt",
"cpp": "start consolePauser.exe ./$fileNameWithoutExt"
},
"code-runner.fileDirectoryAsCwd": true, //Code Runner 设置是否通过切换目录来执行程序,如果做OI的话可以不管。
"code-runner.ignoreSelection": true, //是否忽略部分执行,这个做OI不用管
"code-runner.runInTerminal": true, //是否单独开一个控制台窗口,看个人喜好
//内部控制台窗口字体。
//下方配置需要安装两个字体
//Fira Code,链接:https://githubfast.com/tonsky/FiraCode/releases,解压后安装 ttf 下的所有字体。
//Source Han Sans,链接:https://githubfast.com/adobe-fonts/source-han-sans/releases,下载 Region Specific Subset OTFs Simplified Chinese 这个版本。解压后安装 SubsetOTF/CN 下的所有字体。
//如果不喜欢可以自己换,格式"'字体名称1', '字体名称2', '字体名称3'",以此类推
"debug.console.fontFamily": "'Fira Code', 'Source Han Sans SC'",
"editor.bracketPairColorization.enabled": false,
"editor.codeLensFontFamily": "'Fira Code', 'Source Han Sans SC'",
//光标闪烁方式,该选项有以下几个可选值:
//"blink":光标将以块状的方式闪烁。
//"smooth":光标将以平滑的方式闪烁。
//"phase":光标将以平滑的方式闪烁,并且在字符之间的空白处还会显示一个额外的光标,以帮助用户更好地定位光标位置。
//"expand":光标将以一个逐渐扩大的圆圈表示,以帮助用户更好地看到光标的位置。
//"solid":光标将一直显示为实心,不会闪烁也不会移动。
"editor.cursorBlinking": "phase",
//光标动画效果设置,on 将会显示平滑的动画效果。
"editor.cursorSmoothCaretAnimation": "on",
//光标的样式,该选项有以下几个可选值:
//"line":光标将显示为一条细线,通常用于插入模式。
//"block":光标将显示为一个方块,通常用于命令模式。
//"underline":光标将显示为一条下划线,通常用于选择模式。
"editor.cursorStyle": "line",
//编辑器字体设置,参考 debug.console.fontFamily
"editor.fontFamily": "'Fira Code', 'Source Han Sans SC'",
//是否启用字形连字,on 启用,off 不启用
//字形连字是指将两个或多个相邻的字符组合成一个单一的字符形状,以节省空间和增加文本的可读性。在某些字体中,例如 Fira Code,可以启用字形连字来增强编辑器的显示效果。
"editor.fontLigatures": true,
//字体宽度
"editor.fontWeight": "500",
//以下是缩略图设置,可以不管
"editor.minimap.maxColumn": 30,
"editor.minimap.renderCharacters": false,
"editor.minimap.scale": 3,
//空白字符上显示符号的方式,该选项可以设置为以下值:
//"none":不显示空白字符上的符号。
//"boundary":除了单个空格,在空白字符上显示符号。
//"all":在所有空白字符上显示符号。
"editor.renderWhitespace": "boundary",
//自动换行
//该选项可以设置为以下值:
//"off":关闭自动换行功能。
//"on":启用自动换行功能,将在视区宽度处换行。
//"wordWrapColumn":启用自动换行功能,将在 editor.wordWrapColumn 处折行。
//"bounded":启用自动换行功能,将在视区宽度和 editor.wordWrapColumn 中的较小值处折行。
//要在 VSCode 中设置自动换行,可以将 editor.wordWrap 的值设置为 "on"。如果需要进一步控制换行的位置,可以设置 editor.wordWrapColumn 的值。例如,如果将该值设置为 80,则文本将在达到 80 个字符宽度时自动换行。
"editor.wordWrap": "on",
//删除前是否确认
"explorer.confirmDelete": false,
//拖拽前是否确认
"explorer.confirmDragAndDrop": false,
//文件排序方式
"explorer.sortOrder": "type",
//各类文件的类型,可以不管
"files.associations": {
"*.in": "plaintext",
"*.out": "plaintext",
"*.ans": "plaintext",
"iostream": "cpp",
"bit": "cpp",
"*.tcc": "cpp",
"deque": "cpp",
"string": "cpp",
"unordered_map": "cpp",
"vector": "cpp",
"iomanip": "cpp",
"typeinfo": "cpp",
"cstring": "cpp",
"ostream": "cpp",
"cstdio": "cpp"
},
//是否自动判断编码
"files.autoGuessEncoding": true,
//Markdown Preview 字体,见拓展内容
"markdown.preview.fontFamily": "'Fira Code', 'Source Han Sans SC'",
//是否在搜索中跟踪符号链接,可以不管
"search.followSymlinks": false,
//默认控制台,该选项可以设置为以下值:
//"Command Prompt":使用 Windows 命令提示符作为默认终端配置文件。
//"PowerShell":使用 PowerShell 作为默认终端配置文件。
//"Git Bash":使用 Git Bash 作为默认终端配置文件。
//"Cygwin":使用 Cygwin 作为默认终端配置文件。
//MinGW-w64":使用 MinGW-w64 作为默认终端配置文件。
//"ConEmu":使用 ConEmu 作为默认终端配置文件。
"terminal.integrated.defaultProfile.windows": "Command Prompt",
//多行粘贴警告,"never" 禁用,建议禁用不然很烦。
"terminal.integrated.enableMultiLinePasteWarning": "never",
//终端默认字体,参考 debug.console.fontFamily
"terminal.integrated.fontFamily": "'Fira Code', 'Source Han Sans SC'",
//终端字母之间的间距
"terminal.integrated.letterSpacing": 1,
//右键终端时的动作
"terminal.integrated.rightClickBehavior": "default",
//缩放级别
"window.zoomLevel": 0,
//色调设置
"workbench.colorTheme": "One Dark Pro Mix",
//固定标签页的大小
"workbench.editor.pinnedTabSizing": "compact",
//图标格式
"workbench.iconTheme": "vscode-icons",
//生产图标格式
"workbench.productIconTheme": "fluent-icons",
//树形结构缩进格数
/*
如果你设定这个值为20,那么在VSCode的文件浏览器(Explorer)或者项目浏览器(Project)中,每一个缩进级别就会占据20像素的宽度。
这个设置可以用来调整你的代码或者其他树形结构的显示方式,帮助你更好地阅读和理解代码的结构。你可以根据自己的需要来调整这个值。例如,如果你的屏幕分辨率很高,或者你习惯于较宽的缩进,你可能会设定一个较大的值。相反,如果你的屏幕分辨率较低,或者你喜欢较窄的缩进,你可能会设定一个较小的值。
注意:这个设置只对树形结构的视图有影响,不会改变你的代码本身。例如,如果你在一个文本编辑器中打开一个文件并编辑代码,这个设置不会影响你的代码的缩进。它只影响VSCode的文件浏览器或项目浏览器如何显示这些文件或项目。*/
"workbench.tree.indent": 20,
//C-Cpp Complie Run 设置
"c-cpp-compile-run.save-before-compile": true, //编译前保存
"c-cpp-compile-run.run-in-external-terminal": true, //是否在额外的窗口运行
"c-cpp-compile-run.cpp-flags": "-std=c++14 -Wall -Wextra -lm -O2 -fno-ms-extensions -finput-charset=UTF-8 -fexec-charset=GBK", //编译选项
"c-cpp-compile-run.output-location": "." //exe 文件输出目录
}
STEP 7 【拓展】你说可以多语言代码编辑,去哪里了?!还有我的 Markdown 呢?
这个没必要着急。
先来说 Markdown。
安装以下几个插件:
- Markdown All in One
- Markdown Preview Enhanced
- Markdown to PDF
- Markdown Preview Github Styling
Ctrl + Shift + V 预览。
想要所见即所得的可以看这篇博文。
然后再来说其它的语言。
如果你要的语言是 Javascript,Typescript,Node.js 的话,恭喜你,Vscode 内置支持这些语言。
如果不是的话,可以在扩展搜索你语言的名字,然后安装对应的支持包就可以了。
运行的话,我们安装的 Code Runner 应该能满足大部分语言的需求吧。
也可以在网上搜一搜对应的教程,或者问我,我研究研究(
Summary 总结
终于写完了,历时
翻了大量资料,编写真的很不易。
(小插曲:在写完了转换程序的 Python 版后准备打包时发现一堆报错,然后搞搞搞,最后发现是版本的问题,升级一下就好了:()
希望对各位有所帮助,顺便给个关注,点个赞可以喵?
文中部分内容由百度文心一言编写。
参考资料如下:
-
VSCode 配置教程 - Argvchs - 洛谷博客
-
如何在VScode中添加C++用户自定义片段(Devc++上叫做缺省源,或者是代码框架)_vscode缺省源_嘘……一只bug的博客-CSDN博客
-
【VsCode】使用vscode编写markdown,并预览效果_vscode预览markdown-CSDN博客
(很多资料没放出来是因为我删了历史记录,找不到了555)