Varias configuraciones básicas de vscode

Introducción a vscode

Que es vscode

En pocas palabras, vscode es un editor de texto, no un ide . Esto significa que vscode solo proporciona un entorno de edición y no un entorno de compilación. Si desea utilizar vscode para integrar el entorno de desarrollo, debe seguir los siguientes pasos:

  • Instale el compilador necesario (como mingw, python, texlive, etc.)
  • Configure el entorno de compilación correspondiente (agregue variables de entorno, etc.)
  • Instalar el complemento de extensión vscode coincidente
  • Vincula el compilador externo a vscode ampliando los "atributos" proporcionados por el complemento

Al mismo tiempo, un editor de texto definitivamente no proporcionará la función de ejecutar programas, y lo mismo es cierto para vscode. Para ejecutar el programa, hay varias formas:

  • Algunos complementos de extensión de vscode proporcionarán terminales configurados y comandos para ejecutar programas, que podemos usar directamente;
  • Hay un programa de ejecución de código de complemento de extensión que se especializa en ejecutar programas en vscode, que se puede utilizar después de la instalación;
  • Vscode proporciona interfaces para varios tipos de terminales.Podemos usar la terminal en Vscode como una pequeña caja negra con cmd, por lo que podemos ejecutar el programa en la terminal Vscode;

De esta manera, tenemos un conocimiento general de cómo usar vscode para compilar y ejecutar programas.

configuración de vscode

En primer lugar, debemos dejar en claro que la unidad más pequeña de configuración de vscode es la carpeta, es decir, podemos usar la función de abrir carpeta . Podemos vincular diferentes carpetas a diferentes compiladores externos, implementar diferentes tareas de acceso directo y depurar rápidamente y configuraciones detalladas. Expanda la función del complemento y así sucesivamente.

Por lo tanto, echemos un vistazo rápido a la estructura de configuración de vscode, como se muestra en la siguiente figura: Como
Inserte la descripción de la imagen aquí
puede ver,

  • Hay configuraciones globales settings.json bajo vscode; después de eso está el espacio de trabajo y la configuración del espacio de trabajo settings.json, un espacio de trabajo contiene varias carpetas;
  • Cada carpeta tiene la misma carpeta .vscode. Los tres archivos de esta carpeta son settings.json, tasks.json y launch.json , que son el núcleo de la configuración.
  • Cada carpeta se puede configurar para compilar y ejecutar archivos en diferentes lenguajes: c ++, python y html, y se puede acceder directamente a través del mismo espacio de trabajo Esta es la integración y conveniencia de vscode.

Ahora, digamos uno por uno:

Estructura de archivo

vscode proporciona una estructura de archivos de tres niveles, desde el espacio de trabajo hasta la carpeta y un solo archivo:

  • El espacio de trabajo es una "colección" de carpetas que proporciona vscode. Un espacio de trabajo puede contener varias carpetas, al igual que una carpeta puede contener varios archivos.
  • La carpeta es la unidad de trabajo más pequeña para la configuración de vscode, y vscode no puede proporcionar configuración para un solo archivo.
  • En diferentes espacios de trabajo, podemos optar por habilitar / deshabilitar diferentes complementos de extensión para ahorrar memoria

settings.json

En este archivo json, podemos establecer varias propiedades del vscode incorporado o complementos extendidos a través de pares clave-valor , incluida la dirección del compilador externo, varias preferencias de compilación, etc. Al mismo tiempo, vscode proporciona configuraciones anidadas,
Inserte la descripción de la imagen aquí

  • De mayor a menor, son configuraciones globales, configuraciones de espacio de trabajo y configuraciones de carpeta; las configuraciones globales se abren con ctrl + shift + P y luego ingresan settings.json de forma predeterminada.
  • Las propiedades que establezcamos en la configuración de la carpeta anularán la configuración del espacio de trabajo y la configuración global, y viceversa .
  • Por lo tanto, para configuraciones globales, como fuentes de editor, etc., las configuramos en user settings.json. El espacio de trabajo no se describirá por el momento , y hay diferentes configuraciones para cada carpeta, como querer estar en una carpeta diferente. Para usar diferentes entornos de Python, elegimos establecer el contenido correspondiente en la configuración de la carpeta (es decir, settings.json dentro de la carpeta).

tasks.json

  • Muchas veces, como cuando usamos un sistema Linux, personalizaremos algunos pequeños scripts para facilitar algunas funciones. Vscode usa tareas para apoyar la realización rápida de algunas funciones convenientes.
  • Algunos complementos de extensión tienen tareas encapsuladas que se pueden ejecutar directamente, y también podemos personalizar varias tareas, como "compilar archivos actuales", "eliminar archivos redundantes", etc.
  • Las tareas son más convenientes que definir directamente archivos .bat, ya que vscode proporciona muchas formas de acceder rápidamente a rutas específicas, como la ruta de la carpeta actual, la ruta de la carpeta abierta por vscode, la ruta del archivo actual y el archivo actual sin extensión. Nombre y así sucesivamente.
  • Las tareas definidas en tasks.json solo se pueden usar en la carpeta actual (el espacio de trabajo que contiene la carpeta).

launch.json

Este contenido se utiliza principalmente para brindar soporte para la depuración. ** Se proporcionarán diferentes plantillas para complementos de extensión en diferentes idiomas. ** Presione f5 para seleccionar una plantilla y generar un archivo.

Ventajas de vscode

  • guapo
  • Fuerte integración
  • Es muy conveniente después de la configuración, puede agregar funciones en cualquier momento
  • La expansión es extremadamente rica

Ejemplo de configuración

Después de comprender el principio de configuración de vscode, daré parte de mi propia configuración a continuación como referencia.

settings.json

Configuración global

{
    
    
	//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,
}

A pitón

{
    
    	
	//控制是否激活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/"
         ],
}

Para 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"
    }
}

Par de látex

{
    
    
	//编译方式
	"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

Para 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
        }
    }
}

Compile el archivo .asy después de dibujar con asíntota, elimine los archivos adicionales y mueva el resultado a una carpeta específica

{
    
    
    // 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

Para 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  
            	}  
            ]  
        }  
    ]  
}

Para Python (el valor predeterminado está bien)

{
    
    
    // 使用 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
        }
    ]
}

Supongo que te gusta

Origin blog.csdn.net/namespace_Pt/article/details/105932818
Recomendado
Clasificación