layout: vscode
title: 环境配置
date: 2022-10-11 04:10:04
tags:
VSCode配置
-
配置C/C++ 编译环境
-
安装mingw64
官网
https://winlibs.com/ (推荐)
-
https://nuwen.net/mingw.html
加速下载 https://ghproxy.com/
打开推荐的链接,然后看下图按步骤下载
[图片上传失败...(image-289184-1681184309507)]
-
配置环境变量
- 下载之后是一个zip压缩包,将其解压之后将mingw64文件夹复制到指定位置(路径中不能出现中文 推荐D盘的根目录)
- 复制(带bin目录 )的路径
- [图片上传失败...(image-43246f-1681184309507)]
- 右键此电脑 -> 属性 -> 高级系统设置 -> 环境变量 -> 系统变量 -> Path -> 新建 -> 粘贴 -> 确定 -> 确定 -> 确定
- [图片上传失败...(image-cb58d3-1681184309508)]
- 验证: Win键 + R -> 输入cmd -> 分别输入 gcc -v ,g++ -v , gdb -v 后回车,如果都有类似的显示则编译环境安装成功
- [图片上传失败...(image-a649f6-1681184309508)]
-
-
安装VSCode
- 官方下载地址
- vscode镜像源(推荐)
- 下载后双击安装,选择安装位置 注意五个选项全选,不停下一步安装
- [图片上传失败...(image-9c76c1-1681184309508)]
- 安装Chinese 插件,安装完成先关闭 Vscode 然后重启Vscode
- [图片上传失败...(image-dbc94f-1681184309508)]
- 以后安装插件都是这几个步骤,1.点击拓展按钮,2,输入插件名,3.点击安装
-
配置C/C++ 运行环境
-
安装C/C++ 官方插件 (安装后再重新安装1.8.2版本),注意重新安装c/c++ 插件之后还有再重启一次Vscode
- ps:最新版本不会自动生成launch.json 文件,给无数配置C/C++ 环境的人设置了阻碍,所以选择低版本(这一步很重要)
[图片上传失败...(image-d2ab41-1681184309508)]
安装Code Runner 插件
-
[图片上传失败...(image-735cb0-1681184309508)]
[图片上传失败...(image-2566af-1681184309508)]
-
配置暂停器
Code Runner的默认设置它的运行窗口是这个输出窗口,如果涉及到输入的程序,Code Runner就无能为力了,所以需要我们手动设置一下Code Runner的运行窗口.
打开设置输入Code Runner Run in Terminal 将设置项打勾,
-
重新改写代码,新增输入,再右键使用Code Runner 运行,发现已经再终端运行,可以输入,但是中文又出现了问题
[图片上传失败...(image-a583ef-1681184309508)]
检查powershell 和 hello.c 的文件编码,发现不一致,通过vscode的编码状态按钮修改hello.c的编码,问题解决,
[图片上传失败...(image-d64c5-1681184309508)]
如果常态化写GBK编码的程序,可以这样设置
[图片上传失败...(image-7dbbdb-1681184309508)]
-
还有一种解决办法,增加Code Runner 的编译参数
打开设置,点击右上角第二个图标,打开settings.json 文件,在已有的设置项下添加如下代码,添加后别忘记保存,这一步是设定C/C++ 的编译和执行命令,保存设置后再运行(注意这里的UTF-8编码) ,即使是UTF-8 编码和PowerShell 不一致,输出中文也正常,这里的“-fexec-charset=GBK” 是告诉编译器,程序生成的可执行文件的编码格式强制转为GBK,如果你的编译器编译时报错,可能是该编译器不支持转为GBK编码.
"code-runner.executorMap": { "cpp": "cd $dir && g++ $fullFileName -static-libgcc -std=c++14 -fexec-charset=GBK -o \"$fileNameWithoutExt.exe\" && .\\$fileNameWithoutExt.exe", "c": "cd $dir && gcc $fullFileName -static-libgcc -fexec-charset=GBK -o \"$fileNameWithoutExt.exe\" && .\\$fileNameWithoutExt.exe", },
[图片上传失败...(image-c6730d-1681184309508)]
-
运行拓展
这样 Code Runner 运行程序是在内置的下方的终端,那要像别的ide那样,出现一个黑窗口怎么设置呢
-
只需要在编译参数的 && 后面加一个 start 就可以了(注意前后的空格)
"code-runner.executorMap": { "cpp": "cd $dir && g++ $fullFileName -static-libgcc -std=c++14 -fexec-charset=GBK -o \"$fileNameWithoutExt.exe\" && start .\\$fileNameWithoutExt.exe", "c": "cd $dir && gcc $fullFileName -static-libgcc -fexec-charset=GBK -o \"$fileNameWithoutExt.exe\" && start .\\$fileNameWithoutExt.exe", },
-
但是这样又出现了问题,就是在程序运行之后你输入完成的瞬间就结束了,这是因为程序运行时间极快,运行完成之后没有其他操作就关闭了程序,我们的解决办法是在程序的主函数 的return 语句之前 写一个
getchar();
语句以接收一个用户的输入从而暂停程序.但是这样的解决办法不优雅,我们看看Dev CPP 是怎么解决的
Dev cpp 的内置了一个ConsolePauser.exe 的可执行程序,用它执行一个程序后会计算这个程序的运行时间,读取返回值并在最后暂停这个程序.这样我们就不用改变源码的内容了,这样就比较优雅.
我这里提供一个类似 ConsolePauser.exe 的程序 Pauser.exe,将他复制到mingw下的bin目录中,还记得吗,我们将这个目录设置了环境变量,这样我们就可以直接使用Pauser 命令来暂停程序并获得额外的功能.
xkk1/ConsolePauser: Dev-C++ 中 ConsolePauser.exe 中文可替代版 (github.com)
"code-runner.executorMap": { "cpp": "cd $dir && g++ $fullFileName -static-libgcc -std=c++14 -fexec-charset=GBK -o \"$fileNameWithoutExt.exe\" && start Pauser .\\$fileNameWithoutExt.exe", "c": "cd $dir && gcc $fullFileName -static-libgcc -fexec-charset=GBK -o \"$fileNameWithoutExt.exe\" && start Pauser .\\$fileNameWithoutExt.exe", },
[图片上传失败...(image-e613e0-1681184309508)]
-
程序配置C/C++ 调试环境
我们来新建一个文件夹向大家介绍一下Vscode 的调试功能
打开vscode之后新建一个test.c 输入以下内容
[图片上传失败...(image-240bf6-1681184309508)]
#include
void innerFun(int *arr){ int i = 5, j = 6; // innerFun里面的i和j for(int indexInner = 5; indexInner < 8; indexInner ++){ printf("this is outterFun now indexOut is %d \n",indexInner ); arr[indexInner] = -3; } } void outterFun(int *arr){ int i = 3, j = 4; //outterFun 里面的i和j for(int indexOut = 0; indexOut < 3; indexOut ++){ printf("this is outterFun now indexOut is %d \n",indexOut ); arr[indexOut] = -1; } innerFun(arr); } int main() { int arr[9] = {1,2,3,4,5,6,7,8,9}; int i = 1,j = 2; // main里面的i和j printf("now in Main 你好世界! \n"); printf("now in Main \n"); printf("now in Main \n"); outterFun(arr); return 0; } 我们在第23行打一个断点(鼠标移到行号的左边点一下,出现一个红点)
依次点击 运行->调试->C++(GDB/LLDB)->gcc.exe
[图片上传失败...(image-6c15db-1681184309508)]
[图片上传失败...(image-35c55a-1681184309508)]
本地变量窗口显示了一些的变量的值
在监视窗口可以直接输入表达式,来监视某些变量的值
值得注意的是,想监视一个数组,则需要输入*arr@10 类似的表达式才能监视10个数据
[图片上传失败...(image-3ee1a8-1681184309508)]
-
在文件左侧生成了一个.vscode文件夹,里面生成了 launch.json 和 task.json (新版本- C/C++插件的似乎不会生成其中一个文件)
-
简单配置 C/C++ 多文件调试环境
- 更改 launch.json 和 task.json
-
插件分享和settings.json配置
-
配置html - css - js 环境
- 安装插件
配置 cl 编译器
- 下载 vs2022,如果已经下载,可以跳过这步,
- 使用vs2022创建一个项目,或者打开一个c++项目,确保可以使用vs2022正确运行项目
- 在项目中找到 vs所用的头文件路径和库文件路径
- 编辑环境变量INCLUDE 和 LIB 填充 vs所用的头文件路径和库文件路径
- 找到 vs的cl.exe 将其添加到Path 变量中
{
"code-runner.executorMap": {
"cpp" : "if (!(Test-Path -Path \"$workspaceRoot\\bin\")){mkdir \"$workspaceRoot\\bin\" | Out-Null} && cl /EHsc /nologo /std:c++20 /Fe$workspaceRoot\\bin\\$fileNameWithoutExt.exe /Fo\"$workspaceRoot\\bin\\$fileNameWithoutExt.obj\" $fullFileName && start Pauser $workspaceRoot\\bin\\$fileNameWithoutExt.exe ",
"c" : "if (!(Test-Path -Path \"$workspaceRoot\\bin\")){mkdir \"$workspaceRoot\\bin\" | Out-Null} && cl /EHsc /nologo /std:c17 /Fe$workspaceRoot\\bin\\$fileNameWithoutExt.exe /Fo\"$workspaceRoot\\bin\\$fileNameWithoutExt.obj\" $fullFileName && start Pauser $workspaceRoot\\bin\\$fileNameWithoutExt.exe "
}
}
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: cl.exe 生成活动文件",
"command": "cl.exe",
"args": [
"/Zi",
"/EHsc",
"/nologo",
// "/Fe${fileDirname}\\${fileBasenameNoExtension}.exe",
"/Fe${workspaceFolder}\\bin\\${fileBasenameNoExtension}.exe",
"/Fo${workspaceFolder}\\bin\\${fileBasenameNoExtension}.obj",
"/Fd${workspaceFolder}\\bin\\${fileBasenameNoExtension}.pdb",
"/Fd${workspaceFolder}\\bin\\${fileBasenameNoExtension}.vc140.pdb",
"${file}"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$msCompile"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "调试器生成的任务。"
}
],
"version": "2.0.0"
}
java 开发环境(jdk 和 jre)
-
安装 jdk (jre)
- JDK下载 - 编程宝库 (codebaoku.com)
配置环境变量
安装java插件包
建立简单的项目
python 环境
-
安装python3 解释器
[官网](https://www.python.org/ftp/python/3.10.7/python-3.10.7-amd64.exe) [速度慢可以选择这个镜像](https://registry.npmmirror.com/-/binary/python/3.10.7/python-3.10.7-amd64.exe)
安装python插件包
我的setting josn
{
"files.autoSave": "afterDelay", //自动保存
"files.autoSaveDelay": 100, //自动保存时间
"editor.renderWhitespace": "all", // 显示空白符
"editor.mouseWheelZoom": true, // 按住ctrl键使用鼠标滚轮改变字体大小 //
"editor.quickSuggestions": { //设置快捷补全的开启
"other": "on",
"comments": "on",
"strings": "off"
},
"emmet.includeLanguages": { //在默认不受支持的语言中启用emts的缩写
"javascript": "javascriptreact",
"vue": "html",
// "javascript": "html",
"html":"javascript"
},
"files.autoGuessEncoding": true, //自动猜测字符集
"editor.guides.bracketPairs": true,//开启括号匹配线
"editor.guides.indentation": true,
"workbench.iconTheme": "vscode-icons", //使用vscode-icons图标(需要安装插件)
"terminal.integrated.fontFamily": "JetBrainsMono Nerd Font", //设置终端字体(需要安装字体)
//SSSaSaSaSa 验证等宽字体
//流俩个日期
"editor.fontFamily": "'Ubuntu Mono Nerd Font', '等距更纱黑体 SC'", // 设置字体(需要安装字体)
"terminal.integrated.enableMultiLinePasteWarning": false, // 禁止多行粘贴警告
"editor.suggest.preview": true, //设置快捷建议
"editor.tokenColorCustomizations": { // 设置部分字体倾斜
"textMateRules": [
{
"scope": [ //设置范围
// "comment",
// "function",
// "entity.name.function",
// "entity.name.method",
"keyword.control"
], //设置风格
"settings": {
// "fontStyle": "italic",
"fontStyle": "italic"
}
},{
"scope":[
// "entity.name.function",
// "entity.name.class"
],
"settings": {
"fontStyle": "bold"
}
}
]
},
"editor.formatOnPaste": true, // 设置粘贴的代码格式化
"java.debug.settings.showStaticVariables": true, //设置调试在本地变量中显示静态变量
"java.silentNotification": true, // 控制是否可以使用通知来报告进度。
"errorLens.gutterIconsEnabled": true, //使错误信息的字体为斜体(个人喜好)
"workbench.colorCustomizations": { //自定义颜色
// "editor.hoverHighlightBackground": "#ff0000",
"editor.background": "#272a30",
"sideBar.background": "#292b2e",
"activityBar.activeBackground": "#245a04",
"activityBar.background": "#1f2122",
"statusBar.background": "#245a04",
"menubar.selectionBackground": "#245a04",
"foreground": "#bff1d8",
"menu.selectionBackground": "#245a04",
"titleBar.activeBackground": "#2b2d31",
"menu.background": "#373a31e1",
"sideBarSectionHeader.background": "#535353",
"editor.lineHighlightBackground": "#0e4a074e",
"terminal.tab.activeBorder": "#148716ae",
"panelTitle.activeBorder": "#148716ae",
// "peekViewTitleLabel.foreground": "#ff0000",
"tab.activeBackground": "#14871660",
"tab.activeBorder": "#ffffff",
"quickInputList.focusBackground": "#148716ae",
"panel.border": "#d7bcbc91",
// "panelSection.border": "#ff0000",
"editorLineNumber.activeForeground": "#148716",
"editorLineNumber.foreground": "#f1e6e63e",
"panel.background": "#2c2e2dc3",
// "editorWidget.border": "#b9bece",
"editor.lineHighlightBorder": "#ffffff86", //光标所在行四周边框的颜色
"sideBar.border": "#d7bcbc91", //侧边栏边框
"editorGroup.border": "#d7bcbc91",
"terminal.background": "#25292c"
},
"cSpell.diagnosticLevel": "Hint",
"cSpell.customDictionaries": {
"custom-dictionary-user": {
"name": "custom-dictionary-user",
"path": "~/.cspell/custom-dictionary-user.txt",
"addWords": true,
"scope": "user"
}
},
// 下面的太多了懒得注释了
"diffEditor.codeLens": true,
"files.defaultLanguage": "cpp", // ctrl+N新建文件后默认的语言
"editor.formatOnType": true, // 输入时就进行格式化,默认触发字符较少,分号可以触发
"editor.snippetSuggestions": "top", // snippets代码优先显示补全
"code-runner.saveFileBeforeRun": true, // run code前保存
"code-runner.preserveFocus": false, // 若为false,run code后光标会聚焦到终端上。如果需要频繁输入数据可设为false
"code-runner.clearPreviousOutput": false, // 每次run code前清空属于code runner的终端消息
"C_Cpp.clang_format_sortIncludes": false, // 格式化时调整include的顺序(按字母排序),这个别开,不信以后遇到问题你就会来关了
"C_Cpp.intelliSenseEngine": "Default", // 可以为Default或Tag Parser,后者较老,功能较简单。具体差别参考cpptools扩展文档
"C_Cpp.errorSquiggles": "Disabled", // 因为有clang的lint,所以关掉
"C_Cpp.autocomplete": "Disabled", // 因为有clang的补全,所以关掉
"clang.completion.enable": true,
"C_Cpp.dimInactiveRegions": false,
"clangd.detectExtensionConflicts": false,
"terminal.integrated.defaultProfile.windows": "PowerShell", //设置默认的shell
"[html]": {
"editor.defaultFormatter": "vscode.html-language-features"
},
"editor.stickyScroll.enabled": true,
"editor.tabCompletion": "on",
"editor.guides.bracketPairsHorizontal": true,
"code-runner.runInTerminal": true, // 设置成false会在“输出”中输出,无法输入
"code-runner.executorMap": {
"cpp": "cd $dir && g++ $fullFileName -static-libgcc -std=c++14 -fexec-charset=GBK -o \"$fileNameWithoutExt.exe\" && start Pauser .\\$fileNameWithoutExt.exe",
"c": "cd $dir && gcc $fullFileName -static-libgcc -fexec-charset=GBK -o \"$fileNameWithoutExt.exe\" && start Pauser .\\$fileNameWithoutExt.exe",
// "python": " cls && cd /d $dir && python3 -u $fullFileName && pause",
"python": "cd $dir && D:/Python/Python310/python.exe $fullFileName"
},
"[c]": {
"editor.defaultFormatter": "ms-vscode.cpptools"
},
"terminal.integrated.fontSize": 12,
"window.zoomLevel": -1,
"varTranslation.translationEngine": "tencent",
"varTranslation.tencentSecret": "自己,配置",
"liveServer.settings.donotShowInfoMsg": true,
"editor.renderLineHighlightOnlyWhenFocus": true,
}