vscode的几项基本配置详解

vscode简介

什么是vscode

简单来说,vscode是一款文本编辑器,而不是ide。这就是说,vscode只提供编辑的环境而不提供编译的环境,如果想要用vscode来集成开发环境,则必须经过以下几步:

  • 安装必须的编译器(比如mingw,python,texlive等)
  • 配置相应编译环境(添加环境变量等)
  • 安装匹配的vscode的拓展插件
  • 通过拓展插件提供的“属性”将外部编译器链接到vscode

同时,一个文本编辑器肯定不会提供运行程序的功能,vscode也是如此。要运行程序,有如下几种方法:

  • vscode的一些拓展插件中会提供配置好的终端和运行程序的命令,我们可以直接使用;
  • vscode中有专门运行程序的拓展插件code-runner,可以安装后使用;
  • vscode提供了对数种终端的接口,我们可以在vscode中像使用cmd小黑框那样使用终端,由此我们可以在vscode终端中运行程序;

这样,我们大致了解了使用vscode编译、运行程序的方法。

vscode的配置

首先,我们要明确vscode的配置的最小单元是文件夹,即可以使用打开文件夹功能我们可以把不同的文件夹链接到不同的外部编译器、实现不同的快捷任务、快速进行debug和详细设定拓展插件的功能等等。

因此,我们先速览vscode的配置结构,如下图:

可以看到,

  • vscode下有全局设置settings.json;之后是工作区,和工作区设置settings.json,一个工作区包含了多个文件夹;
  • 每个文件夹中有相同的.vscode文件夹,这个文件夹中的三个文件settings.json,tasks.json,launch.json,它们就是配置的核心。
  • 每个文件夹通过配置可以编译运行不同语言的文件:c++,python和html,同时可以通过同一个工作区直接访问,这就是vscode的集成性和方便性。

现在,我们一项一项来说:

文件结构

vscode提供三级文件结构,从工作区到文件夹到单个文件:

  • 工作区是vscode提供的文件夹的“集合”,一个工作区可以包含多个文件夹,正如一个文件夹可以包含多个文件。
  • 文件夹是vscode配置的最小工作单元,vscode无法为单个文件提供配置。
  • 在不同的工作区中我们可以选择启用/禁用不同的拓展插件以节省内存

settings.json

在这个json文件中,我们可以通过键值对的方式设置vscode内置的或拓展插件的各项属性,其中就包括外部编译器地址、各项编译偏好等等。

同时,vscode提供层层嵌套的settings,

  • 从高到低分别是全局设置、工作区设置、文件夹设置; 全局设置默认通过ctrl+shift+P后输入settings.json打开。
  • 我们在文件夹设置中设置的属性会覆盖工作区设置、也会覆盖全局设置,反之不成立。
  • 因此,对于全局的设置,比如编辑器字体等,我们将其在user settings.json中进行设置,工作区暂不叙述,而对于每个文件夹都不同的设置,比如想在不同的文件夹中使用不同的python环境,我们选择在folder settings中(即文件夹内部的settings.json中)设置相应内容。

tasks.json

  • 很多时候,像在使用linux系统的时候,我们会自定义一些小脚本来方便的实现一些功能,vscode就使用tasks来支持快捷实现一些方便的功能。
  • 有些拓展插件会有封装好的task可以直接执行,我们也可以自定义各种各样的task,例如实现“编译当前文件”,“删除多余文件”等等操作。
  • tasks比直接定义.bat文件更方便之处在于vscode提供了诸多快捷访问特定路径的方式,如当前文件夹的路径,vscode打开的文件夹的路径,当前文件的路径,当前文件不带拓展名的名称等等。
  • tasks.json中定义的任务仅能在当前文件夹(包含该文件夹的工作区)中使用。

launch.json

这其中的内容主要是用来对调试提供支持。**针对不同语言的拓展插件会提供不同的模板。**按f5可以选择模板并生成文件。

vscode的优势

  • 好看
  • 集成性很强
  • 配置好了后很方便,随时可以自己加功能
  • 拓展极其丰富

配置实例

了解了vscode的配置原理,我在下面给出一些我自己配置的内容以供参考。

settings.json全局配置

{
	//vscode的默认终端,此处设置为cmd
 	"terminal.integrated.shell.windows": "C:\\WINDOWS\\System32\\cmd.exe",
 	//拖拽移动文件时不要确认提示
 	"explorer.confirmDragAndDrop": false,
 	//手动升级vscode
 	"update.mode": "manual",
 	//自动保存,此处设置为永远自动保存
 	"files.autoSave": "afterDelay",
 	//task的下拉列表中显示历史常用的个数
 	"task.quickOpen.history": 0,
}

对python

{
	//控制是否激活pylint
 	//"python.linting.pylintEnabled": true,
 	"python.linting.enabled": true,
 	//如果使用pylint可能会导致奇怪的报错,加上这几句可以取消
 	//"python.linting.pylintArgs": [
 	// "--generate-members"
 	//],
 	//是否在自动补全的函数后自动添加括号
 	"python.autoComplete.addBrackets": false,
 	//是否使用python插件内部的自动补全功能
 	"python.jediEnabled": true,
 	//python环境的路径
 	"python.pythonPath": "C:\\apps\\Anaconda\\python.exe",
 	//python自动补全的搜索路径
 	"python.autoComplete.extraPaths": [
 	 "C:/apps/Anaconda/Lib/site-packages/",
 	 "C:/apps/Anaconda/Scripts/"
    ],
}

对c,c++

{
 "files.associations": {
 "*.tcc": "cpp",
 "array": "cpp",
 "atomic": "cpp",
 "cctype": "cpp",
 "clocale": "cpp",
 "cmath": "cpp",
 "cstdarg": "cpp",
 "cstddef": "cpp",
 "cstdint": "cpp",
 "cstdio": "cpp",
 "cstdlib": "cpp",
 "cwchar": "cpp",
 "cwctype": "cpp",
 "deque": "cpp",
 "unordered_map": "cpp",
 "vector": "cpp",
 "exception": "cpp",
 "algorithm": "cpp",
 "functional": "cpp",
 "iterator": "cpp",
 "memory": "cpp",
 "memory_resource": "cpp",
 "numeric": "cpp",
 "optional": "cpp",
 "random": "cpp",
 "string": "cpp",
 "string_view": "cpp",
 "system_error": "cpp",
 "tuple": "cpp",
 "type_traits": "cpp",
 "utility": "cpp",
 "fstream": "cpp",
 "initializer_list": "cpp",
 "iosfwd": "cpp",
 "iostream": "cpp",
 "istream": "cpp",
 "limits": "cpp",
 "new": "cpp",
 "ostream": "cpp",
 "sstream": "cpp",
 "stdexcept": "cpp",
 "streambuf": "cpp",
 "typeinfo": "cpp"
 }
}

对latex

{
	//编译方式
	"latex-workshop.latex.tools": [
 {
 "name": "latexmk",
 "command": "latexmk",
 "args": [
 "-synctex=1",
 "-interaction=nonstopmode",
 "-file-line-error",
 "-pdf",
 "%DOC%"
 ]
 },
 {
 "name": "xelatex",
 "command": "xelatex",
 "args": [
 "-synctex=1",
 "-interaction=nonstopmode",
 "-file-line-error",
 "%DOC%"
 ]
 },
 {
 "name": "pdflatex",
 "command": "pdflatex",
 "args": [
 "-synctex=1",
 "-interaction=nonstopmode",
 "-file-line-error",
 "%DOC%"
 ]
 },
 {
 "name": "bibtex",
 "command": "bibtex",
 "args": [
 "%DOCFILE%"
 ]
 }
 ],
	"latex-workshop.latex.recipes": [
 {
 "name": "xelatex",
 "tools": [
 "xelatex"
 ]
  },
 {
 "name": "latexmk",
 "tools": [
 "latexmk"
 ]
 },
 {
 "name": "pdflatex -> bibtex -> pdflatex*2",
 "tools": [
 "pdflatex",
 "bibtex",
 "pdflatex",
 "pdflatex"
 ]
 }
 ],
 //需要清除文件的后缀
 "latex-workshop.latex.clean.fileTypes": [
 "*.aux",
 "*.bbl",
 "*.blg",
 "*.idx",
 "*.ind",
 "*.lof",
 "*.lot",
 "*.out",
 "*.toc",
 "*.acn",
 "*.acr",
 "*.alg",
 "*.glg",
 "*.glo",
 "*.gls",
 "*.ist",
 "*.fls",
 "*.log",
 "*.fdb_latexmk",
 "*.gz"
 ],
 //不要显示错误弹窗
 "latex-workshop.message.error.show": false,
 //不要显示信息弹窗
 "latex-workshop.message.information.show": false,
 //不要显示警报弹窗
 "latex-workshop.message.warning.show": false,
 //保存时不要自动编译
 "latex-workshop.latex.autoBuild.run": "never",
 //默认在右边tab预览
 "latex-workshop.view.pdf.viewer": "tab",
} 

tasks.json对C/C++

{
 "version": "2.0.0",
 "command": "g++",
 "args": ["-g","${file}","-o","${fileBasenameNoExtension}.exe"], // 编译命令参数
 "problemMatcher": {
 "owner": "cpp",
 "fileLocation": ["relative", "\\"],
 "pattern": {
 "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
 "file": 1,
 "line": 2,
 "column": 3,
 "severity": 4,
 "message": 5
 }
 }
}

用asymptote画图后进行编译.asy文件,删除多余文件,将结果移动至特定文件夹

{
 // See https://go.microsoft.com/fwlink/?LinkId=733558
 // for the documentation about the tasks.json format
 "version": "2.0.0",
 "tasks": [
 //编译
 {
 //在task列表中显示的文字
 "label": "Generate EPS",
 //运行环境
 "type": "shell",
 //命令
 "command": "asy",
 //参数
 "args": [
 "-f",
 "eps",
 //$开头的都是vscode提供的封装好的变量,具体内容
 //可以自己尝试
 "${file}"
 ],
 //所述属组
 "group": "build",
 //报错处理
 "problemMatcher": []
 },
 //删除文件
 {
 "label": "Delete FILE",
 "type": "shell",
 "command": "del",
 "args": [
 "*.aux",
 "*.log",
 "*.dvi",
 "*.pdf"
 ],
 //设置为none的task不会在build task的下拉列表中展示
 "group": "none",
 "problemMatcher": []
 },
 //将生成的eps移动至相应文件夹
 {
 "label": "Move EPS",
 "type": "shell",
 "command": "move",
 "args": [
 "/Y",
 //$开头的都是vscode提供的封装好的变量,具体内容
 //可以自己尝试
 "${workspaceFolder}\\${fileBasenameNoExtension}.eps",
 "C:\\Pt_Latex\\Reources\\"
 ],
 "group": "build",
 //在运行这个任务之前,需要提前运行的任务
 "dependsOn": [
 "Delete FILE"
 ],
 "problemMatcher": []
 }
 ]
}

launch.json

对C/C++

{
 "version": "0.2.0",
 "configurations": [ 

 {
 "name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示
 "type": "cppdbg", // 配置类型,这里只能为cppdbg
 "request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
 "program": "${workspaceFolder}/${fileBasenameNoExtension}.exe",// 将要进行调试的程序的路径
 "args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可
 "stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false
 "cwd": "${workspaceFolder}", // 调试程序时的工作目录,一般为${workspaceFolder}即代码所在目录
 "environment": [],
 "externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台
 "MIMode": "gdb",
 "miDebuggerPath": "C:\\apps\\MinGW\\bin\\gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应
 "preLaunchTask": "g++", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc
 "setupCommands": [
 	{
 		"description": "Enable pretty-printing for gdb",
  "text": "-enable-pretty-printing",
  "ignoreFailures": true
 	}
 ]
 }
 ]
}

对python(默认的就成)

{
 // 使用 IntelliSense 了解相关属性。
 // 悬停以查看现有属性的描述。
 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
 "version": "0.2.0",
 "configurations": [

 {
 "name": "Python: 当前文件",
 "type": "python",
 "request": "launch",
 "program": "${file}",
 "console": "integratedTerminal",
 //是否在程序开始处停止
 "stopOnEntry": false
 }
 ]
}

到此这篇关于vscode的几项基本配置的文章就介绍到这了,更多相关vscode基本配置内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • vscode 配置 python3开发环境的方法

    vscode来写python,配置灵活,界面美观,是个非常好的选择.我这里是在ubuntu系统下配置vscode的python3开发环境,当然也可以参照本文在其它操作系统下配置vscode的python开发环境. 1 安装插件 python 这个是vscode提供的python 官方插件,提供了python代码的调试,自动补全,代码格式化等功能 vscode-icons 这个也是vscode官方提供的插件,作用是给vscode编辑的文件增加图标.这里再推荐一个相同功能的插件**vscode-ic

  • VSCode下好用的Python插件及配置

    MS Python插件. 这是微软官方的Python插件,已经自带很多功能.下面是插件功能描述,其中部分内容我做了翻译. a)        Linting (Prospector, Pylint, pycodestyle, Flake8, pylama, pydocstyle, mypy with config files and plugins)静态代码扫描(可以理解为代码语法和格式错误提示,支持多种linter) b)       Intellisense (autocompletion

  • VSCode配置Git的方法步骤随记

    vscode中对git进行了集成,很多操作只需点击就能操作,无需写一些git指令. 不过这就需要你对vscode进行配置.下面我会讲到git的配置与免密码上传github. 一.安装Git管理工具,可上官网安装,安装路径https://git-scm.com/,安装路径默认C:\Program Files\Git,可自行修改,这里我是安装在D:\Program Files\Git. 二.安装完Git之后,如图配置好环境变量path路径的信息,一般会自动配置成功,配置完成后电脑就可以使用Git了.

  • 如何使用VSCode愉快的写Python于调试配置步骤

    在学习Python的过程中,一直没有找到比较趁手的第三方编辑器,用的最多的还是Python自带的编辑器.由于本人用惯了宇宙第一IDE(Visual Studio),所以当Visual Studio Code出现时,心情有点小激动呢.从我的使用经验出发,可以说VSCode用来写Python真的是再合适不过了,你将体验到丝滑的编程体验和无限扩展的可能.而且,如果你的项目是包含多种语言的,比如Web开发,你不必再开多个编辑器和其他工具,因为这一切都可以在VSCode里完成了. vscode下载地址:/

  • VSCode下配置python调试运行环境的方法

    VSCode配置python调试环境 很久之前的一个东东,翻出来看看 VSCode配置python调试环境 * 1.下载python解释器 * 2.在VSCode市场中安装Python插件 * 4.在用户设置里加两条 * 5.接下来是正式的调试了 1080 两个数的平方和 Input Output Input示例 Output示例 1.下载python解释器 python 3.6.3 for windows 安装到系统某个路径例如C:\Python36 最好添加到Path,也可以不加 2.在VS

  • VSCode配置react开发环境的步骤

    vscode 默认配置对于 react 的 JSX 语法不友好,体现在使用自动格式化或者粘贴后默认缩进错误,尽管可以通过改变 language mode 缓解错误,但更改 language mode 后的格式化依然不够理想. 通过搭配使用 ESLint和 Prettier插件可以实现在 vscode 中完美支持 JSX 语法. 编辑器安装插件 在 vscode 中需要安装下面插件: ESLint Prettier 项目中的配置 配置ESLint 基础配置 项目中安装 babel-eslint ,

  • vscode中eslint插件的配置(prettier配置无效)

    用vue-cli构建vue项目,会有个eslint代码检测的安装 可vscode自带代码格式化是prettier格式(右键有格式化文件或alt+shift+f) 这时候要在vscode上装一个eslint插件 装完后在文件----->首选项------->设置里找到settings.json(快捷键忘了) eslint配置如下,(配置的·具体详情还有待研究,我也是网上copy的,不过亲测可用).保存配置后每次写.vue文件只要control+s保存,就可以把代码格式改成符合eslint标准 &

  • vscode的几项基本配置详解

    vscode简介 什么是vscode 简单来说,vscode是一款文本编辑器,而不是ide.这就是说,vscode只提供编辑的环境而不提供编译的环境,如果想要用vscode来集成开发环境,则必须经过以下几步: 安装必须的编译器(比如mingw,python,texlive等) 配置相应编译环境(添加环境变量等) 安装匹配的vscode的拓展插件 通过拓展插件提供的"属性"将外部编译器链接到vscode 同时,一个文本编辑器肯定不会提供运行程序的功能,vscode也是如此.要运行程序,有

  • 利用vscode编写vue的简单配置详解

    前言 本文主要给大家介绍的是关于vscode编写vue简单配置的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: PS:现在推荐使用vetur插件 win10崩溃,重装win7,结果sublime text插件无法安装,各种心塞,于是决定转战vscode. 与sublime text相比,vscode有不少优点: 中文输入法支持更好.在windows平台下,需要st支持中文输入需要安装各种插件,而且效果也是差强人意. 基础功能更全面.vscode自带插件管理.git.sidebar.

  • VSCode插件安装完成后的配置详解

    VSCode插件安装完成后,有些插件如果你想要完整的使用其中的功能得在settings.json中就行配置,接下来是我常用的一些配置 { "workbench.iconTheme": "vscode-icons", "window.zoomLevel": 0, "files.autoSave": "off", "eslint.runtime": "", "e

  • Anaconda+vscode+pytorch环境搭建过程详解

    1.安装Anaconda Anaconda指的是一个开源的Python发行版本,其包含了conda.Python等180多个科学包及其依赖项.在官网上下载https://www.anaconda.com/distribution/,因为服务器在国外会很慢,建议从清华镜像https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/下载. 2.安装VScode 需要在Anaconda再装VScode,因为Anaconda公司和微软公司的合作,不用在对进

  • kubelet配置详解及简单实例

    kubelet配置详解及简单实例 摘要: 这两天试着重新去理解kubelet的每一个配置,并整理出我们最有可能要配置的项作为我们上生产的要考虑的kubelet最佳配置. author: garnett.wang@gmail.com kubernetes version: 1.6.2 Kubelet Configurations We Should Care About 下面是我梳理的,我认为必须关注的flag. flag value --address 0.0.0.0 --allow-privi

  • Spring Web MVC和Hibernate的集成配置详解

    网上看到很多关于Spring与Hibernate的集成的文章,奈何由于那些文章写作时间较早,很多都是Spring 3 和Hibernate 4等较旧的版本.所以我在这里使用更新的版本来说明一下. 添加项目依赖 首先我们需要一个Java Web项目,最好使用Maven或Gradle构建工具,方便我们解决软件依赖.我在这里使用Gradle构建工具,构建脚本如下.我们只要引入spring-webmvc和spring-orm这两个包,其他的Spring依赖会自动由构建工具解决.然后还需要引入数据源.Hi

  • Java中 log4j日志级别配置详解

    1.1 前言 说出来真是丢脸,最近被公司派到客户公司面试外包开发岗位,本来准备了什么redis.rabbitMQ.SSM框架的相关面试题以及自己做过的一些项目回顾,信心满满地去面试,结果别人一上来就问到了最近项目使用的日志系统是什么?日志级别是怎么配置的?当时我都蒙X了,平时都是项目经理搭的,我自己也是随便上网一搜往配置文件一黏贴就OK了.我就这么说完后面试官深深定了我一眼,当时我的内心羞愧到...... 1.2 闲话少说,讲讲日志的发展故事(如果已经了解的可以跳过,直接看1.3日志配置) 要想

  • vue-cli3全面配置详解

    本文介绍了vue-cli3全面配置详解,分享给大家,具体如下: vue-cli3-config 创建项目 配置环境变量 通过在package.json里的scripts配置项中添加--mode xxx来选择不同环境 在项目根目录中新建.env, .env.production, .env.analyz等文件 只有以 VUE_APP_ 开头的变量会被 webpack.DefinePlugin 静态嵌入到客户端侧的包中,代码中可以通过process.env.VUE_APP_BASE_API访问 NO

  • 史上最全Android build.gradle配置详解(小结)

    Android Studio是采用gradle来构建项目的,gradle是基于groovy语言的,如果只是用它构建普通Android项目的话,是可以不去学groovy的.当我们创建一个Android项目时会包含两个Android build.gradle配置详解文件,如下图: 一.Project的build.gradle文件: 对应的build.gradle代码如下: // Top-level build file where you can add configuration options

  • Linux 系统 nginx 服务器安装及负载均衡配置详解

    nginx(engine x) 是一个 高性能 的 HTTP 和 反向代理 服务器.邮件代理服务器以及通用的 TCP/UDP 代理服务器.其特点为轻量级(占用系统资源少).稳定性好.可扩展性(模块化结构).并发能力强.配置简单等. 本文主要介绍在测试环境中通过 nginx 实现基本的 负载均衡 功能. nginx 可以提供 HTTP 服务,包括处理静态文件,支持 SSL 和 TLS SNI.GZIP 网页压缩.虚拟主机.URL 重写等功能,可以搭配 FastCGI.uwsgi 等程序处理动态请求

随机推荐