VScode 從入門到更加入門


VScode 介紹

VScode 是一款強大的編輯器,至少在對於 OIer 來說 VScode 是最好的選擇,VScode 是輕量級編輯器,不像 VS 或者 Clion 一樣是重量級編輯器,不方便 OIer 使用(並且還瘋狂占用 CPU);也不像 Dev-cpp 一樣盡管可以直接使用,但是功能卻一言難盡……這個時候就要看 VScode 了!
VScode 支持打開文件夾,代碼補全,代碼片段插入,強大的調試功能,Markdown 的編輯和瀏覽,括號匹配,本地歷史記錄保存,修改代碼縮進風格,內部控制台,連體字符,內置 git,內置編碼查看修改,代碼查看,宏展開等等……絕對是 OIer 的不二之選。

VScode 下載和安裝

直接在官網下載即可,但是由於某些不知道的原因下載比較慢,建議配合多線程下載器使用,比如說 Minecraft 啟動器 多線程下載器 pcl2,可以在 1min 內下載完畢,下載完畢后不用多想一路下一個就行了,不像某 P2P 一樣會附帶捆綁。
我相信大多數人先看見 VScode 打開時那堆英文就勸退了,實際上等待一會兒 VScode 就會讓你下載中文插件,或者 Ctrl+Shift+X 打開拓展界面輸入 Chinese 安裝第一個插件就行了,最后重啟再打開顯示的就是中文了。再實際上重啟不用按叉叉再打開 VScode (這個叫大退),只要 Ctrl+Shift+P 輸入 reload 就可以重啟了(這個叫小退)。
VScode 的默認字體不是連體等寬字體,我們不妨在這里下載 Fira Code,一款連體等寬字體,然后在設置里輸入:

"editor.fontFamily": "Fira Code",

字體就變成漂亮的連體等寬字體 Fira Code 了。
眾所周知 VScode 在配置時比較麻煩,這點可以通過登錄 Github 賬號解決,也可以通過下載 VScode 綠色版解決。這里就介紹一下怎么下載 VScode 綠色版。
首先還是在這里下載,不過這次下載的是 .zip 壓縮包,解壓完之后在 Code.exe 同級目錄下新建文件夾 data,里面存放的就是各種配置,包括拓展、設置等等。在里面新建一個 tmp 的文件夾表示臨時文件會在這里面生成。這個時候打開 Code.exe 就可以了,綠色版就是這么簡單……

VScode 配置 c++ 環境

注意支持 win7 的最后一個版本 1.70.3

都2022年了總是 c++ 了
首先安裝 C/C++ 插件,實際上有這個插件就行了,下載時可能 VScode 會熱情贈送一些沒用的插件,會拖慢啟動速度而且沒什么用處,可以直接不下載那些插件。
然后需要一個 c++ 在 Path 里的環境,所以需要一個 MinGW,考慮到 Dev-cpp 的 MinGW 過於古老,建議到 winlibs 里面下載一個 MinGW,下載下來是個壓縮包,解壓后放在自己喜歡的位置(也可以直接刪掉 Dev-cpp 里的 MinGW,把這個替換進去),然后 右鍵此電腦-屬性-高級系統設置-環境變量,選擇變量 Path ,如果沒有 MinGW 就新建一個,輸入 MinGW 的解壓地址,再來個 \bin 。比如說我把 MinGW 直接解壓到 C 盤下面,添加的路徑就是 C:\MinGW64\bin 。打開 cmd 輸入 g++ -v 就可以知道環境變量是否安裝成功,如果成功是會顯示 gcc 的版本的。
再次回到 VScode ,先選擇一個自己喜歡的文件夾,以后的文件都放這里了。Ctrl+Shift+P 輸入 C/C++編輯配置(JSON) 就會自動生成一個 .json 文件,一般來說是沒什么問題的,直接關掉就行了。
這個時候打開工作文件夾里的 .cpp 文件,就可以看到代碼補全和代碼高亮發揮了作用,如果沒有就小退/大退一下。如果還是沒有代碼補全試試 Ctrl+Shift+P 打開首選項:打開設置(JSON),輸入以下文字:

"[cpp]": {
	"editor.quickSuggestions": true
},

如果還是沒有效果可能是因為沒有 .net4.5 以上的環境,可以在這里下載,建議下載脫機版。
但是這樣並不好,因為只能編譯卻不能運行,VScode 就只發揮了一般的高級編輯器的作用,然而 VScode 卻不是一般的高級編輯器,而是高級的高級編輯器(胡言亂語++)。有的同學可能已經在 F11 試圖運行了,結果卻全屏了,因為我們需要修改 VScode 的配置讓其能生成 .exe 文件並且打開 .exe文件。

指令

這個非常簡單,直接使用 cmd 自己輸指令編譯運行就行了。但是略微有些麻煩,不如 Code Runner。可能用 Linux 的比較順手?

Code Runner

不得不說 Code Runner 挺好用的。Ctrl+Shift+X 輸入 Code Runner 就可以下載 Code Runner 插件,然后直接就可以 Ctrl+Alt+N 運行了~
但是輸入和輸出都在小小的面板里,不得不說有點難受,可以選擇移動面板的位置來修改,另外可以 Ctrl+Shift+P 輸入首選項:打開設置(JSON),在 settings.json 輸入這些內容就可以在終端里運行(不是面板里的終端)。

"code-runner.clearPreviousOutput": true,//運行前清屏
"code-runner.runInTerminal": true,//在終端里運行
"terminal.integrated.cursorStyle": "line",//終端光標是線的形狀
"terminal.integrated.defaultLocation": "editor",//終端在頁面里
"terminal.integrated.cursorBlinking": true,//終端光標閃爍
"terminal.integrated.fontSize": 15,//終端字體大小為 15
"terminal.integrated.enableMultiLinePasteWarning": false,//在終端郵件粘貼時不警告
"code-runner.saveFileBeforeRun": true,//運行前保存文件

這樣修改過之后就是作者喜歡的形狀了(還是建議按照自己喜好修改)。
不過這樣弄完之后有些比較麻煩的事情,請看下面:

不能處理帶空格的文件

這是因為 Code Runner 默認配置的問題,可以在設置里輸入

"code-runner.executorMap": {
	"cpp": "cd $dir && g++ \"$fileName\" -o Runner -O2 -std=c++20 -Wall -Wextra -Wshadow -Wconversion \"-Wl,--stack=2147483647\" && ./Runner",
},

注意到 VScode 的默認終端是 powershell,如果不喜歡可以把終端改成 cmd。

"terminal.integrated.defaultProfile.windows": "Command Prompt",//將默認終端改成cmd
"code-runner.executorMap": {
	"cpp": "cd $dir && g++ \"$fileName\" -o Runner -O2 -std=c++20 -Wall -Wextra -Wshadow -Wconversion \"-Wl,--stack=2147483647\" && Runner",// cmd 的語法就不用 ./ 了
},

Code Runner 原理是在終端里輸入指令運行,所以你也可以試試自己 diy 哦!$dir 表示當前文件所在的文件夾名稱,$fileName 表示當前文件的名稱。
多說無益,給個表:

  • $workspaceRoot 當前工程目錄路徑
  • $dir 要運行的代碼文件所在的目錄
  • $dirWithoutTrailingSlash 要運行的代碼文件所在的目錄(不帶尾后斜桿)
  • $fullFileName 要運行的代碼文件全路徑
  • $fileName 要運行的代碼文件名稱
  • $fileNameWithoutExt 要運行的代碼文件名稱(不帶后綴名)
  • $driveLetter 要運行的代碼文件所在盤符(只用於Windows系統)
  • $pythonPath Python解釋器路徑

如果不想清一色 Runner 就這樣把所有 Runner 改成 \"$fileNameWithoutExt\",這樣產生的 exe 文件名就和 cpp 文件名一樣。

小優化

眾所周知有的機子編譯 c++ 程序比較慢,在台式機上問題不大是秒出,但是在我的垃圾電腦上跑的就比較慢。Code Runner 在編譯時期只有編譯完才可以輸入,有時候着急就按了好幾下粘貼了好幾次……這不太好,解決的最好方式是編譯結束后輸出一條結束語,最簡單的方法就是在 settings.json 里插入 echo 語句。
不過這樣輸出是白色的不太好看,所以我選擇另一種方式:寫一個小程序:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<windows.h>
int main(int argc,char const *argv[]){
//	freopen(".in","r",stdin);
//	freopen(".out","w",stdout);
	std::string c2;
	for(int i=1;i<argc;i++)c2+=argv[i];
	system(("echo \033[36;40m"+c2).data());
	system("echo|set /p=\033[37;40m");
	return 0;
}

眾所周知 c++ 的 main 函數可以放一個 int 變量和 char 數組指針的數組指針,argc 表示數組指針的數量,argv 記錄了參數內容。這個 exe 的大體意思是把所有參數組合起來,用藍色輸出,第二個 system 是讓顏色改成默認的黑白,否則后面一直是藍黑。|set /p= 的作用是讓 echo 不換行。
這個程序編譯完之后,可以在 cmd 里輸入

Runner "2345 6789"

來檢查正確性,如果輸出的是藍色的 2345 6789 就表示這個程序沒問題。把編譯完的文件放入工作文件夾改成喜歡的名字比如 IcePrint.exe 然后把 settings.json 這么改:

"code-runner.executorMap": {
	"cpp": "cd $dir && g++ \"$fileName\" -o Runner -O2 -std=c++20 -Wall -Wextra -Wshadow -Wconversion \"-Wl,--stack=2147483647\" && \"$workspaceRoot\"\\IcePrint \"Compile OK\" && ./Runner",
},

如果使用 echo 直接輸出:

"code-runner.executorMap": {
	"cpp": "cd $dir && g++ \"$fileName\" -o Runner -O2 -std=c++20 -Wall -Wextra -Wshadow -Wconversion \"-Wl,--stack=2147483647\" && echo \"Compile OK\" && ./Runner",
},

同理也可以改成 \"$fileNameWithoutExt\"。結果令人滿意QAQ 也可以自己寫自己的 IcePrint,甚至可以自己寫隨機數來控制輸出的內容和顏色,甚至還能放幾句台詞???反正一切皆有可能只要你會基礎 cmd 語法和基礎 c++ 語法。

Ubuntu

按照 bash 的語法修改一下,其實就是上面 powershell 的語法:

"code-runner.executorMap": {
	"cpp": "cd $dir && g++ \"$fileName\" -o Runner -O2 -std=c++20 -Wall -Wextra -Wshadow -Wconversion \"-Wl,--stack=2147483647\" && ./Runner",
},

launch.json 和 tasks.json

注意:此方法從來沒有在 win7 及以下版本成功過,似乎 win7 不能運行 tasks.json,而且支持 win7 的最后一個 VScode 版本是 1.70.3。

這個做法看似麻煩實際不難,而且是考場上沒有 Code Runner 時的做法。
一般的配置方式都是寫個 tasks.json,使用 launch.json 調用一個 task,然后就可以跑程序了。
首先在剛剛的 .vscode 里建 launch.json,輸入以下代碼:

{
	"version": "0.2.0",
	"configurations": [
		{
			"name": "編譯並調試(VScode)",
			"type": "cppdbg",
			"request": "launch",
			"program": "${fileDirname}\\Runner.exe",
			"cwd": "${fileDirname}",
			"preLaunchTask": "g++ compile"
		},
		{
			"name": "編譯並運行(ConsolePauser)",
			"type": "cppvsdbg",
			"request": "launch",
			"program": "${workspaceFolder}\\ConsolePauser.exe",
			"args": ["Runner.exe"],
			"cwd": "${fileDirname}",
			"console": "newExternalWindow",
			"preLaunchTask": "g++ compile (no debug)"
		},
		{
			"name": "編譯並運行(pause)",
			"type": "cppvsdbg",
			"request": "launch",
			"program": "Runner.exe",
			"cwd": "${fileDirname}",
			"console": "externalTerminal",
			"preLaunchTask": "g++ compile (no debug)"
		},
		{
			"name": "(Windows) 快速啟動",
			"type": "cppvsdbg",
			"request": "launch",
			"program": "C:\\Windows\\System32\\cmd.exe",
			"args": [
				"/c",
				"g++",
				"${file}",
				"-o",
				"${fileBasenameNoExtension}",
				"-Wl,--stack=104857600",
				"-O2",
				"-Wall",
				"-Wextra",
				"-Wshadow",
				"-std=c++20",
				"&&",
				"${fileBasenameNoExtension}.exe"
			],
			"cwd": "${fileDirname}",
			"console": "externalTerminal"
		}
	]
}

這里的 name 就是名字,給自己看的而已,request 就寫 launchprogram 就是你要運行的程序,cwd 表示你寫的指令的相對位置,preLaunchTask 就是你要調用的 task 了。
仔細研究上述代碼,發現他們的 type 不同,cppdbg 表示調試的意思,而 cppvsdbg 表示運行,這個調試就是字面意思,沒什么可以研究的。運行中還帶個 console 表示類型,newExternalWindow 表示新跳出一個窗口,externalTerminal 表示新跳出一個窗口,運行結束后自動暫停。
注意中間那個寫法,ConsolePauser 就是 Dev-c++ 里面的 ConsolePauser,我在這里調用就可以仿照 Dev-c++ 的操作界面了。ConsolePauser 的好處就是可以計時以及獲得返回值,args 就是參數表,也就是說你可以在 cmd 里面輸入 ConsolePauser Runner.exe 來以 Dev-c++ 的形式運行個 exe。
這里附上 tasks.json 的寫法:

{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "shell",
			"label": "g++ compile",
			"command": "g++",
			"args": [
				"${file}",
				"-g",
				"-o",
				"${fileDirname}\\Runner",
				"-O2",
				"-Wall",
				"-Wextra",
				"-Wshadow",
				"-Wconversion",
				"-std=c++20"
			],
			"problemMatcher": [
				"$gcc"
			],
			"group": {
				"kind": "build",
				"isDefault": true
			}
		},
		{
			"type": "shell",
			"label": "g++ compile (no debug)",
			"command": "g++",
			"args": [
				"${file}",
				"-o",
				"${fileDirname}\\Runner",
				"-O2",
				"-Wall",
				"-Wextra",
				"-Wshadow",
				"-Wconversion",
				"-std=c++20"
			],
			"problemMatcher": [
				"$gcc"
			]
		}
	]
}

如果是 Ubuntu 把相應的語法改成 bash 的語法就行了。

如果在 CSP 的時候機子不太行,不能跑 tasks.json,那我推薦一個賽場上很適合寫的方法,把所有指令壓縮到 cmd 的參數列表里面,win7 和遠古版本 VScode 也肯定支持哦:

{
	"version": "0.2.0",
	"configurations": [
		{
			"name": "(Windows) 快速啟動",
			"type": "cppvsdbg",
			"request": "launch",
			"program": "C:\\Windows\\System32\\cmd.exe",
			"args": [
				"/c g++ ${file} -o ${fileBasenameNoExtension} -Wl,--stack=104857600 -O2 -Wall -Wextra -Wshadow -std=c++14 && ${fileBasenameNoExtension}.exe"
			],
			"cwd": "${fileDirname}",
			"console": "externalTerminal"
		}
	]
}

但是不知道為啥,這個方法在 CSP-S2022 是可行的,NOIP2022 又不行了???都是考場害得!據說有的考場甚至沒有 VScode!

VScode 其他配置

VSCode git

git 安裝

git 是一個重要的源代碼管理工具,VScode 也帶了 git ,Ctrl+Shift+G 可以召喚 git,然而在這之前,你應該先安裝 git。

綁定 GitHub

安裝完 git 之后建議先把本地電腦和 GitHub 綁定起來,

ssh-keygen -t rsa -C "your email"

在 cmd 或者 git bush 輸入這句話,your email 是你注冊 GitHub 的郵箱,跳出一段話后直接回車,然后再直接回車,然后再再直接回車,就會產生一個奇怪的正方形,這個時候打開用戶文件夾,發現里面多了個 .ssh 文件夾,用 VScode 打開 id_rsa.pub,發現里面是一串以 ssh-rsa 開頭的字符串,將所有字符復制,打開 GitHub 的這個頁面,選擇 New SSH Key,Title隨意 ,Key 里就是剛剛那串字符串(要 ssh-rsa 這個前綴),然后 Add SSH Key 后輸入密碼就行了。
可以通過在 cmd 或者 git bush 輸入

ssh -T git@github.com

檢測是否成功,如出現

Are you sure you want to continue connecting (yes/no/[fingerprint])?

字樣就輸入 yes 然后回車,如果出現

Hi "Your Name"! You've successfully authenticated, but GitHub does not provide shell access.

就代表成功連接了 Github

上傳倉庫

直接 Ctrl+Shift+G 選擇上傳到Github,選擇是公有倉庫還是私有倉庫就行了。

更新

之后你的更改都會在 Ctrl+Shift+G 頁面顯示出來,可以暫存更改,在消息中輸入文字后 Ctrl+Enter 就可以提交更改,但是這只是在本機的更改,並不會影響 Github ,這個時候選擇右上角 3 個點選擇推送就行了,如果你想把 Github 上倉庫的內容替換本地,就選擇拉取。

Python

對於 OIer 來說光是 C/C++ 顯然是不夠的,比如說 Python 也是一種在高精度上重要的語言,Python 是解釋性語言,不需要這么復雜的配置,我在上面 Code Runner 章節也貼出了 Python 和 Ruby 的 Code Runner 參數,然后下載 Python 的插件就有了高亮和代碼補全,直接 Ctrl+Shift+N 運行即可。

Markdown

對於 OIer 來說 Markdown 也是很重要的,用來寫題解,筆記或者感想等都是非常有用的。VScode 內部自帶了 Markdown,只要建一個 xxx.md 文件就好了,Ctrl+K V 就可以一邊編輯 Markdown 一邊瀏覽了,非常方便!!

用戶代碼片段

別人隨便按幾下就是一個板子,隨便按幾下就是一個函數,羡慕嗎?這就是用戶代碼片段。只要文件-首選項-用戶片段-新建"xx"文件夾的代碼片段文件,選擇一個喜歡的名字就可以弄用戶代碼片段了,是一個 .code-snippets 文件。
這里給出一個板子:

{
	"快速冪": {//補全提示
		"scope": "cpp",//出現的文件
		"prefix": "add_qp",//補全關鍵詞
		"body": [//插入部分主體
			"inline int qp(int a,int b,int t=1){for(;b;b>>=1,a=a*a%MOD)if(b&1)t=t*a%MOD;return t;}"
		]
	},
	"模板": {
		"scope": "cpp",
		"prefix": "add_mod",
		"body": [
			"#include<iostream>",//以逗號隔開
			"#include<cstdio>",
			"#include<algorithm>",
			"using std::cin;using std::cout;",
			"signed main(){",
			"//\tfreopen(\".in\",\"r\",stdin);",//注意這種情況需要轉義符
			"//\tfreopen(\".out\",\"w\",stdout);",
			"//\tstd::ios::sync_with_stdio(false);",
			"//\tcin.tie(nullptr);cout.tie(nullptr);",
			"\treturn 0;",
			"}"//json文件語法,最后一個沒有逗號
		]
	}//json文件語法,最后一個沒有逗號
}

有人說:我這一個一個修改轉義符一個一個加上引號也太麻煩了吧!確實有點,但是作為一名成熟的 OIer,寫個程序為自己所用還是沒什么問題的:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<string>
using std::cin;using std::cout;
signed main(){
//	freopen(".in","r",stdin);
//	freopen(".out","w",stdout);
	std::ios::sync_with_stdio(false);
	cin.tie(nullptr);cout.tie(nullptr);
	std::string a,b="";
	while(std::getline(cin,a)){
		cout<<b<<"\"";b=",\n";
		for(char it:a){
			switch(it){
				case '\t':cout<<"\\t";continue;
				case '\"':cout<<"\\\"";continue;
				case '\\':cout<<"\\\\";continue;
				default:cout<<it;
			}
		}
		cout<<"\"";
	}
	return 0;
}

VScode 插件

Chinese

下載鏈接
不認識英語的蒟蒻表示很贊。

Code Runner

下載鏈接
一件運行代碼,簡單到不解釋。

C/C++

下載鏈接
提供了 C/C++ 的代碼補全和代碼高亮。

Python

下載鏈接
提供了 Python 的代碼補全和代碼高亮

Drawio

下載鏈接
提供了 VScode 對 .drawio 文件的支持

MindMap

下載鏈接 提供了 VScode 對 .km 文件的支持

One Dark Pro

下載鏈接 添加了 3 個暗色主題,主題色調為紫紅黃橙藍綠,非常優雅。

Horizon Theme

下載鏈接 粉粉的,真好看。

Mariana

下載鏈接 即 Sublime 的默認主題。

background-cover

下載鏈接 給你的 VScode 加個背景!
總不可能天天對着黑屏幕寫代碼,當然是對着自己喜歡的背景寫代碼啊。
注意的是有標題為 background 圖標是魔理沙的插件,那個插件下載完后字體會很奇怪QAQ。

Fix VScode Checksums

下載鏈接 當你裝完背景之后 VScode 會貼心提示你 Code 已損壞,安裝此插件后 Ctrl+Shift+P 輸入 Apply 然后大退就可以去掉 VScode 的貼心提示。

Colorful Comments

下載鏈接 在注釋里加上一些特殊字符可以讓注釋變成彩色的,比如說 //* 是綠色,//! 是紅色,特殊的,注釋再注釋是刪除線,//TODO 是橙色。

Hex Editor

下載鏈接 提供了 16 進制文本編輯器。

Error Lens

下載鏈接 將代碼報錯信息移動到行內。

vscode-pdf

下載鏈接 VScode 竟然不能看 .pdf 文件,大怒!還好有插件!

Svg Preview

下載鏈接 為 vscode 提供了 .svg 文件的瀏覽方法。

Rainbow CSV

下載鏈接 .csv 文件雖然可以直接瀏覽,但是容易糊成一團分不出列,使用本插件可以把相同列渲染為相同顏色,方便閱讀 .csv。

Markdown PDF

下載鏈接 可以把 .md 文件導出成為 .pdf .html 文件,操作簡單,右鍵即可。

LeetCode

下載鏈接 有的時候想做 LeetCode 的題,裝了這個插件直接在 LeetCode 里切。

vscode-luogu

下載鏈接 有的時候想做洛谷的題,裝了這個插件直接在洛谷里切。

Codeforces Bot

下載鏈接 有的時候想做 Codeforces 的題,裝了這個插件直接在 Codeforces 里切。

Bracket Pair Colorizer 2

下載鏈接 有的惡心題不免出現括號套括號套括號套括號套括號……的情況,這個插件可以給每一層括號匹配不同的顏色,將不匹配的括號渲染成紅色
然而現在 VScode 已經自帶此功能了,可以做到和插件一樣的效果並且加載速度飛快,常常高亮還沒加載出來括號匹配就渲染完了。這里給個板子:

"editor.bracketPairColorization.enabled": true,
"editor.guides.bracketPairs": "active",
"workbench.colorCustomizations": {
	"editorBracketHighlight.foreground1": "#ffd700",
	"editorBracketHighlight.foreground2": "#da70d6",
	"editorBracketHighlight.foreground3": "#87cefa"
},

實際上不寫也可以有默認的括號匹配,這里給出只是為了 diy 愛好者自己 diy。

vscode-icons

下載鏈接 我只想說這個插件修改后的圖標真好看。

Marp for VS Code

下載鏈接 用 marp 寫課件真的很方便,沒有 ppt 一樣的頭痛,也沒有 \(\LaTeX\) 一樣的復雜。

Code Time

下載鏈接 可以統計你每天或者每周寫代碼的時間,登錄 Github 或者 Google 帳號還可以看歷史寫代碼時間。

CodeSnap

下載鏈接 為代碼截圖提供了更好的辦法,再也不用手動截圖了,選中代碼即可導出截圖。

Local History

下載鏈接 顧名思義,每次保存代碼時可以在本地產生一份備份,有的時候,Ctrl+Z 是解決不了問題的。然而現在 VScode 自帶這個功能了。只要在 Ctrl+Shift+E 里選擇時間線……

Settings Sync

下載鏈接 不同機子上 VScode 配置不同步怎么辦?用這個插件就可以同步,然而現在 VScode 只要登錄 GitHub 賬號就可以同步了……

小霸王

下載鏈接 這真的是小霸王,我只能……啊這了……

thief-book

下載鏈接 可以在面板的下面偷偷放出小說的字樣,神不知鬼不覺,其他人第一眼沒反應過來,第二眼字已經不見了!小說的格式是 .txt,編碼必須是 UTF-8。

Cloudmusic

下載鏈接 一邊寫代碼一邊聽歌有時候還是不錯的。

daily anime

下載鏈接 可以快速看見這周什么番會更新,也可以隨機獲取一條 ACGN 的句子......

Zhihu On VSCode

下載鏈接 來知乎,分享你新編的故事。

QQ

下載鏈接 機房不讓用 QQ 怎么辦?沒有人知道你的 VScode 里有個 QQ。

VScode 常用配置

settings.json

我這里把我的 settings 掛上來,至於是什么效果可以扔到 settings.json 使用鼠標懸停的方式看是什么效果:

{
	"security.workspace.trust.untrustedFiles": "open",
	"editor.fontFamily": "Fira Code",
	// "editor.fontFamily": "Cascadia Mono",
	// "editor.fontFamily": "JetBrains Mono",
	// "editor.fontFamily": "Ubuntu Mono",
	// "editor.fontFamily": "BabelStone Han",
	"editor.insertSpaces": false,
	"editor.fontLigatures": true,
	"editor.detectIndentation": false,
	"debug.onTaskErrors": "showErrors",
	"code-runner.runInTerminal": true,
	"code-runner.saveFileBeforeRun": true,
	"code-runner.executorMap": {
		"cpp": "cd $dir && g++ \"$fileName\" -o Runner -O2 -std=c++23 -Wall -Wextra -Wshadow -Wconversion \"-Wl,--stack=2147483647\" && ./Runner",
		"python": "cd $dir && python -u \"$fileName\""
	},
	"terminal.integrated.defaultLocation": "editor",
	"terminal.integrated.cursorBlinking": true,
	"editor.fontSize": 14,
	"terminal.integrated.fontSize": 14,
	"debug.console.fontSize": 14,
	"workbench.iconTheme": "vscode-icons",
	"terminal.integrated.enableMultiLinePasteWarning": false,
	"git.confirmSync": false,
	"files.autoGuessEncoding": true,
	"editor.minimap.maxColumn": 100,
	"files.defaultLanguage": "cpp",
	"explorer.copyRelativePathSeparator": "\\",
	"editor.hover.delay": 200,
	"extensions.ignoreRecommendations": true,
	"editor.fastScrollSensitivity": 12,
	"workbench.list.fastScrollSensitivity": 12,
	"terminal.integrated.fastScrollSensitivity": 12,
	"files.eol": "\n",
	"vsicons.dontShowNewVersionMessage": true,
	"workbench.sideBar.location": "right",
	"diffEditor.ignoreTrimWhitespace": false,
	"editor.cursorSmoothCaretAnimation": "on",
	"terminal.integrated.scrollback": 19198100,
	"git.ignoreMissingGitWarning": true,
	"editor.wordSeparators": "`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?!@©®℗№¥€£¥¢¤₩%°℃‰‱℉℅℆℀℁⅍…*·・×※❂⁂☮☯☣()—々〃「」【】〔〕[]〚〛〘〙、\;:‘’“”《》〈〉«»‹›⟨⟩˂˃˱˲、/÷",
	"[python]": {
		"editor.formatOnType": true
	},
	"workbench.colorTheme": "Horizon",
	"workbench.activityBar.visible": false,
}

還有個更生猛的全部禁用斜體:

"editor.tokenColorCustomizations": { //禁用所有主題的斜體
	"textMateRules": [
		{
			"scope": [
				"comment",
				"comment.block",
				"comment.block.documentation",
				"comment.line",
				"constant",
				"constant.character",
				"constant.character.escape",
				"constant.numeric",
				"constant.numeric.integer",
				"constant.numeric.float",
				"constant.numeric.hex",
				"constant.numeric.octal",
				"constant.other",
				"constant.regexp",
				"constant.rgb-value",
				"emphasis",
				"entity",
				"entity.name",
				"entity.name.class",
				"entity.name.function",
				"entity.name.method",
				"entity.name.section",
				"entity.name.selector",
				"entity.name.tag",
				"entity.name.type",
				"entity.other",
				"entity.other.attribute-name",
				"entity.other.inherited-class",
				"invalid",
				"invalid.deprecated",
				"invalid.illegal",
				"keyword",
				"keyword.control",
				"keyword.operator",
				"keyword.operator.new",
				"keyword.operator.assignment",
				"keyword.operator.arithmetic",
				"keyword.operator.logical",
				"keyword.other",
				"markup",
				"markup.bold",
				"markup.changed",
				"markup.deleted",
				"markup.heading",
				"markup.inline.raw",
				"markup.inserted",
				"markup.italic",
				"markup.list",
				"markup.list.numbered",
				"markup.list.unnumbered",
				"markup.other",
				"markup.quote",
				"markup.raw",
				"markup.underline",
				"markup.underline.link",
				"meta",
				"meta.block",
				"meta.cast",
				"meta.class",
				"meta.function",
				"meta.function-call",
				"meta.preprocessor",
				"meta.return-type",
				"meta.selector",
				"meta.tag",
				"meta.type.annotation",
				"meta.type",
				"punctuation.definition.string.begin",
				"punctuation.definition.string.end",
				"punctuation.separator",
				"punctuation.separator.continuation",
				"punctuation.terminator",
				"storage",
				"storage.modifier",
				"storage.type",
				"string",
				"string.interpolated",
				"string.other",
				"string.quoted",
				"string.quoted.double",
				"string.quoted.other",
				"string.quoted.single",
				"string.quoted.triple",
				"string.regexp",
				"string.unquoted",
				"strong",
				"support",
				"support.class",
				"support.constant",
				"support.function",
				"support.other",
				"support.type",
				"support.type.property-name",
				"support.variable",
				"variable",
				"variable.language",
				"variable.name",
				"variable.other",
				"variable.other.readwrite",
				"variable.parameter"
			],
			"settings": {
				"fontStyle": ""
			}
		}
	]
},

這個問題本來應該在第一段回答,為了防止影響理解就放在這里了:怎么把綠色版的配置變成本地的配置呢?
這里舉個例子,假如我的用戶名字叫做 piper,並且之前修改過 VScode 的配置,那么在 C:\Users\piper 目錄下有一個 .vscode 的文件夾,里面有一個 extensions 的文件夾和 argv.json 的文件,全部拷貝到 data 文件夾里。同時在 C:\Users\piper\AppData\Roaming 文件夾里有個叫 Code 的文件夾,也拷貝到 data 文件夾里,然后啟動 Code.exe,如果是移動完第一次啟動可能不會生效,只需要小退/大退一下就會生效。
對於綠色版和安裝版,C:\Users\piper\AppData\Roaming\Code\User 和 F:\VSCode\data\user-data\User (這里假設解壓到了 F 盤)是同一個東西,C:\Users\piper\AppData\Roaming\Code\User\settings.json 和 F:\VSCode\data\user-data\User\settings.json 就是后文多次提到的 Ctrl+Shift+P 首選項:打開設置(JSON)。當然也可以修改工作文件夾里的 .vscode 文件夾里的 settings.json 來覆蓋全局配置。設置用戶自定義快捷鍵的 keybindings.json 也是同理。(如果你沒有修改過,沒有這個文件是正常的)
另外說一句,卸載掉 VScode 之后 C:\Users\piper\.vscode 和 C:\Users\piper\AppData\Roaming\Code 這兩個文件夾仍然存在,如果不刪掉這兩個文件夾,以后再下載 Code 會保持原來的配置……所以如果不小心搞壞了 VScode,刪掉這兩個文件夾后又是一條好漢。

keybindings.json

  • Ctrl+N 新建文件
  • Ctrl+Shift+N 新建窗口
  • Ctrl+P 搜索並打開文件
  • Ctrl+Shift+P 選擇功能
  • Ctrl+Shift+E 打開資源管理器
  • Ctrl+Shift+D 打開調試欄
  • Ctrl+Shift+F 打開工作文件夾搜索欄
  • Ctrl+Shift+H 打開工作文件夾替換欄
  • Ctrl+Shift+G 打開 Git 欄
  • Ctrl+Shift+X 打開拓展欄
  • Ctrl+B 打開或關閉以上 6 個
  • Ctrl+Shift+K 刪除本行
  • Ctrl+Shift+Enter 跳到上一行開頭
  • Ctrl+Enter 跳到下一行開頭
  • Ctrl+S 保存
  • Ctrl+Shift+S 另存為
  • Ctrl+K S 全部保存
  • Ctrl+C 復制
  • Ctrl+X 剪切
  • Ctrl+V 粘貼
  • Ctrl+Z 撤銷
  • Ctrl+Y 恢復
  • Ctrl+I 代碼補全
  • Ctrl+F 搜索
  • Ctrl+O 打開文件
  • Ctrl+K Ctrl+O 打開文件夾
  • Ctrl+H 替換
  • Ctrl+A 全選
  • Ctrl+G 跳到指定行
  • Ctrl+L 選擇這行
  • Ctrl+~ 打開面板終端
  • Ctrl+K Ctrl+X 刪除尾部空格
  • Ctrl+K R 在資源管理器打開當前文件
  • Ctrl+K V 打開 Markdown 瀏覽
  • Ctrl+K Z進入禪模式
  • Ctrl+Shift+~ 打開終端
  • Ctrl+, 打開設置
  • Ctrl+/ 注釋
  • Ctrl+Shift+\ 跳到匹配的括號
  • Ctrl+tab 切換文件
  • Ctrl+[ 向左縮進一次
  • Ctrl+] 向右縮進一次
  • Ctrl+- 窗口縮小
  • Ctrl+= 窗口放大
  • Ctrl+Up 光標不動,頁面上移
  • Ctrl+Dn 光標不動,頁面下移
  • Ctrl+Left 左移一塊
  • Ctrl+Right 右移一塊
  • Ctrl+F2 選中所有當前選中項
  • Ctrl+F4 功能更強的關閉
  • Ctrl+W 關閉文件
  • Ctrl+U 回到上一次的光標位置
  • Ctrl+K F 關閉文件夾
  • Alt+F4 關閉 VScode
  • Alt+Up 將這行代碼上移
  • Alt+Dn 將這行代碼下移
  • Alt+Shift+F 格式化
  • Alt+Shift+I 在選中行末尾插入光標
  • Alt+Shift+Up 向上復制一行
  • Alt+Shift+Dn 向下復制一行
  • Alt+Shift+Left 縮小選擇的代碼塊
  • Alt+Shift+Right 擴大選擇的代碼塊
  • Alt+左鍵 插入光標
  • Alt+Shift+左鍵 多列插入光標
  • Ctrl+Alt+Shift+Up 向上移動並插入光標
  • Ctrl+Alt+Shift+Dn 向下移動並插入光標
  • F2 重命名
  • F5 編譯
  • F8 跳到下一個錯誤
  • F9 設置斷點
  • F11 全屏
  • F12 轉到定義
  • Home 轉到行首
  • End 轉到行尾
  • Ctrl+Home 轉到文件首
  • Ctrl+End 轉到文件尾
  • Alt+F12 查看定義
  • Shift+F12 查看引用
  • Ctrl+K Ctrl+T 更改主題
  • Ctrl+K Ctrl+S UI 界面修改快捷鍵
  • Alt+Z 切換自動換行

當然也可以修改自己的快捷鍵,就像 settings.json 的位置一樣修改 keybindings.json 就可以了。不過我建議還是 Ctrl+K Ctrl+S 調出 UI 界面修改比較方便,所以這里就不放出 keybindings.json 的板子了。
其實看似快捷鍵一堆,常用的也沒多少,而且這些快捷鍵有許多也是編輯器的通用快捷鍵,所以上手很簡單。
以上就是 VScode 的簡要入門,看了這么多是不是感覺會的更少了……這就是標題從入門到更加入門的含義。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM