vscode簡介
什么是vscode
簡單來說,vscode是一款文本編輯器,而不是ide。這就是說,vscode只提供編輯的環(huán)境而不提供編譯的環(huán)境,如果想要用vscode來集成開發(fā)環(huán)境,則必須經(jīng)過以下幾步:
- 安裝必須的編譯器(比如mingw,python,texlive等)
- 配置相應(yīng)編譯環(huán)境(添加環(huán)境變量等)
- 安裝匹配的vscode的拓展插件
- 通過拓展插件提供的“屬性”將外部編譯器鏈接到vscode
同時,一個文本編輯器肯定不會提供運(yùn)行程序的功能,vscode也是如此。要運(yùn)行程序,有如下幾種方法:
- vscode的一些拓展插件中會提供配置好的終端和運(yùn)行程序的命令,我們可以直接使用;
- vscode中有專門運(yùn)行程序的拓展插件code-runner,可以安裝后使用;
- vscode提供了對數(shù)種終端的接口,我們可以在vscode中像使用cmd小黑框那樣使用終端,由此我們可以在vscode終端中運(yùn)行程序;
這樣,我們大致了解了使用vscode編譯、運(yùn)行程序的方法。
vscode的配置
首先,我們要明確vscode的配置的最小單元是文件夾,即可以使用打開文件夾功能我們可以把不同的文件夾鏈接到不同的外部編譯器、實(shí)現(xiàn)不同的快捷任務(wù)、快速進(jìn)行debug和詳細(xì)設(shè)定拓展插件的功能等等。
因此,我們先速覽vscode的配置結(jié)構(gòu),如下圖:
可以看到,
- vscode下有全局設(shè)置settings.json;之后是工作區(qū),和工作區(qū)設(shè)置settings.json,一個工作區(qū)包含了多個文件夾;
- 每個文件夾中有相同的.vscode文件夾,這個文件夾中的三個文件settings.json,tasks.json,launch.json,它們就是配置的核心。
- 每個文件夾通過配置可以編譯運(yùn)行不同語言的文件:c++,python和html,同時可以通過同一個工作區(qū)直接訪問,這就是vscode的集成性和方便性。
現(xiàn)在,我們一項(xiàng)一項(xiàng)來說:
文件結(jié)構(gòu)
vscode提供三級文件結(jié)構(gòu),從工作區(qū)到文件夾到單個文件:
- 工作區(qū)是vscode提供的文件夾的“集合”,一個工作區(qū)可以包含多個文件夾,正如一個文件夾可以包含多個文件。
- 文件夾是vscode配置的最小工作單元,vscode無法為單個文件提供配置。
- 在不同的工作區(qū)中我們可以選擇啟用/禁用不同的拓展插件以節(jié)省內(nèi)存
settings.json
在這個json文件中,我們可以通過鍵值對的方式設(shè)置vscode內(nèi)置的或拓展插件的各項(xiàng)屬性,其中就包括外部編譯器地址、各項(xiàng)編譯偏好等等。
同時,vscode提供層層嵌套的settings,
- 從高到低分別是全局設(shè)置、工作區(qū)設(shè)置、文件夾設(shè)置; 全局設(shè)置默認(rèn)通過ctrl+shift+P后輸入settings.json打開。
- 我們在文件夾設(shè)置中設(shè)置的屬性會覆蓋工作區(qū)設(shè)置、也會覆蓋全局設(shè)置,反之不成立。
- 因此,對于全局的設(shè)置,比如編輯器字體等,我們將其在user settings.json中進(jìn)行設(shè)置,工作區(qū)暫不敘述,而對于每個文件夾都不同的設(shè)置,比如想在不同的文件夾中使用不同的python環(huán)境,我們選擇在folder settings中(即文件夾內(nèi)部的settings.json中)設(shè)置相應(yīng)內(nèi)容。
tasks.json
- 很多時候,像在使用linux系統(tǒng)的時候,我們會自定義一些小腳本來方便的實(shí)現(xiàn)一些功能,vscode就使用tasks來支持快捷實(shí)現(xiàn)一些方便的功能。
- 有些拓展插件會有封裝好的task可以直接執(zhí)行,我們也可以自定義各種各樣的task,例如實(shí)現(xiàn)“編譯當(dāng)前文件”,“刪除多余文件”等等操作。
- tasks比直接定義.bat文件更方便之處在于vscode提供了諸多快捷訪問特定路徑的方式,如當(dāng)前文件夾的路徑,vscode打開的文件夾的路徑,當(dāng)前文件的路徑,當(dāng)前文件不帶拓展名的名稱等等。
- tasks.json中定義的任務(wù)僅能在當(dāng)前文件夾(包含該文件夾的工作區(qū))中使用。
launch.json
這其中的內(nèi)容主要是用來對調(diào)試提供支持。**針對不同語言的拓展插件會提供不同的模板。**按f5可以選擇模板并生成文件。
vscode的優(yōu)勢
- 好看
- 集成性很強(qiáng)
- 配置好了后很方便,隨時可以自己加功能
- 拓展極其豐富
配置實(shí)例
了解了vscode的配置原理,我在下面給出一些我自己配置的內(nèi)容以供參考。
settings.json全局配置
{
//vscode的默認(rèn)終端,此處設(shè)置為cmd
"terminal.integrated.shell.windows": "C:\\WINDOWS\\System32\\cmd.exe",
//拖拽移動文件時不要確認(rèn)提示
"explorer.confirmDragAndDrop": false,
//手動升級vscode
"update.mode": "manual",
//自動保存,此處設(shè)置為永遠(yuǎn)自動保存
"files.autoSave": "afterDelay",
//task的下拉列表中顯示歷史常用的個數(shù)
"task.quickOpen.history": 0,
}
對python
{
//控制是否激活pylint
//"python.linting.pylintEnabled": true,
"python.linting.enabled": true,
//如果使用pylint可能會導(dǎo)致奇怪的報錯,加上這幾句可以取消
//"python.linting.pylintArgs": [
// "--generate-members"
//],
//是否在自動補(bǔ)全的函數(shù)后自動添加括號
"python.autoComplete.addBrackets": false,
//是否使用python插件內(nèi)部的自動補(bǔ)全功能
"python.jediEnabled": true,
//python環(huán)境的路徑
"python.pythonPath": "C:\\apps\\Anaconda\\python.exe",
//python自動補(bǔ)全的搜索路徑
"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",
//默認(rèn)在右邊tab預(yù)覽
"latex-workshop.view.pdf.viewer": "tab",
}
tasks.json對C/C++
{
"version": "2.0.0",
"command": "g++",
"args": ["-g","${file}","-o","${fileBasenameNoExtension}.exe"], // 編譯命令參數(shù)
"problemMatcher": {
"owner": "cpp",
"fileLocation": ["relative", "\\"],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
}
用asymptote畫圖后進(jìn)行編譯.asy文件,刪除多余文件,將結(jié)果移動至特定文件夾
{
// 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",
//運(yùn)行環(huán)境
"type": "shell",
//命令
"command": "asy",
//參數(shù)
"args": [
"-f",
"eps",
//$開頭的都是vscode提供的封裝好的變量,具體內(nèi)容
//可以自己嘗試
"${file}"
],
//所述屬組
"group": "build",
//報錯處理
"problemMatcher": []
},
//刪除文件
{
"label": "Delete FILE",
"type": "shell",
"command": "del",
"args": [
"*.aux",
"*.log",
"*.dvi",
"*.pdf"
],
//設(shè)置為none的task不會在build task的下拉列表中展示
"group": "none",
"problemMatcher": []
},
//將生成的eps移動至相應(yīng)文件夾
{
"label": "Move EPS",
"type": "shell",
"command": "move",
"args": [
"/Y",
//$開頭的都是vscode提供的封裝好的變量,具體內(nèi)容
//可以自己嘗試
"${workspaceFolder}\\${fileBasenameNoExtension}.eps",
"C:\\Pt_Latex\\Reources\\"
],
"group": "build",
//在運(yùn)行這個任務(wù)之前,需要提前運(yùn)行的任務(wù)
"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",// 將要進(jìn)行調(diào)試的程序的路徑
"args": [], // 程序調(diào)試時傳遞給程序的命令行參數(shù),一般設(shè)為空即可
"stopAtEntry": false, // 設(shè)為true時程序?qū)和T诔绦蛉肟谔?,一般設(shè)置為false
"cwd": "${workspaceFolder}", // 調(diào)試程序時的工作目錄,一般為${workspaceFolder}即代碼所在目錄
"environment": [],
"externalConsole": true, // 調(diào)試時是否顯示控制臺窗口,一般設(shè)置為true顯示控制臺
"MIMode": "gdb",
"miDebuggerPath": "C:\\apps\\MinGW\\bin\\gdb.exe", // miDebugger的路徑,注意這里要與MinGw的路徑對應(yīng)
"preLaunchTask": "g++", // 調(diào)試會話開始前執(zhí)行的任務(wù),一般為編譯程序,c++為g++, c為gcc
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
對python(默認(rèn)的就成)
{
// 使用 IntelliSense 了解相關(guān)屬性。
// 懸停以查看現(xiàn)有屬性的描述。
// 欲了解更多信息,請?jiān)L問: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: 當(dāng)前文件",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
//是否在程序開始處停止
"stopOnEntry": false
}
]
}
到此這篇關(guān)于vscode的幾項(xiàng)基本配置的文章就介紹到這了,更多相關(guān)vscode基本配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- vscode 配置 python3開發(fā)環(huán)境的方法
- vscode中eslint插件的配置(prettier配置無效)
- VSCode配置Git的方法步驟隨記
- VSCode下好用的Python插件及配置
- VSCode下配置python調(diào)試運(yùn)行環(huán)境的方法
- 如何使用VSCode愉快的寫Python于調(diào)試配置步驟
- VSCode配置react開發(fā)環(huán)境的步驟