vscode snippet 工程模板文件分享

2.3 自定义自己使用的代码片段

刷leetcode应该会很有用,比如引入一些链表node或者是图的定义等等。

比如写ROS的RVIZ输出的时候,能够有一个标准的代码片段的标准输出很有用。

比如写旋转矩阵或者类似的东西的时候

这里可以创建两种snippets的配置文件,第一种是global的全局snippets配置文件,适合一些注释等所有语言都适用的情况?

我主要是使用了第二种,针对某一种语言创建snippets配置文件

这里我主要为C++程序和Python程序创建了Code Snippet文件,我将我的代码文件template分享:

首先是Python的template模板(python.json文件)

Python 复制代码
{
	// Place your snippets for python here. Each snippet is defined under a snippet name and has a prefix, body and 
	// description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
	// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the 
	// same ids are connected.
	// Example:
	// "Print to console": {
	// 	"prefix": "log",
	// 	"body": [
	// 		"console.log('$1');",
	// 		"$2"
	// 	],
	// 	"description": "Log output to console"
	// }
	"prefixs for leetcode": {
		"prefix": "prefix for leetcode",
		"body": [
			"from typing import List",
			"from queue import Queue",
		],
		"description": "prefix for leetcode"
	},
	"main for leetcode": {
		"prefix": "main for leetcode",
		"body": [
			"if __name__ == \"__main__\":",
			"    solution = Solution()",
			"    grid = [['1','1','0','0','0'],",
			"            ['1','1','0','0','0'],",
			"            ['0','0','1','0','0'],",
			"            ['0','0','0','1','1']]",
			"    result = solution.numIslands(grid)",
			"    print(f\"result = {result}\")",
			" ",
		],
		"description": "main for leetcode"
	},
	"bfs template": {
		"prefix": "bfs template",
		"body": [
			"def bfs(_grid: List[List[str]], _visited: List[List[bool]], _i: int, _j: int):",
			"    dirs = [[-1, 0], [1, 0], [0, -1], [0, 1]]",
			"    que = Queue(0) # 0意味着初始化无线长度的queue",
			"    que.put([_i, _j])",
			"    _visited[_i][_j] = True",
			"    while not que.empty():",
			"        cur = que.get()",
			"        curx = cur[0]",
			"        cury = cur[1]",
			"        for n in range(4):",
			"            nextx = curx+dirs[n][0]",
			"            nexty = cury+dirs[n][1]",
			"            if(nextx < 0 or nextx >= len(_grid) or",
			"                nexty < 0 or nexty >= len(_grid[0])):",
			"                continue",
			"            if(_visited[nextx][nexty] is False and _grid[nextx][nexty] == '1'):",
			"                que.put([nextx, nexty])",
			"                _visited[nextx][nexty] = True",
		],
		"description": "bfs template"
	}

}

其次是C++的template模板(cpp.json文件)

cpp 复制代码
{
	// Place your snippets for cpp here. Each snippet is defined under a snippet name and has a prefix, body and 
	// description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
	// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the 
	// same ids are connected.
	// Example:
	// "Print to console": {
	// 	"prefix": "log",
	// 	"body": [
	// 		"console.log('$1');",
	// 		"$2"
	// 	],
	// 	"description": "Log output to console"
	// }
	"sort algorithm with lambda": {
		"prefix": "sort_lambda",
		"body": [
			"std::vector<int> v;",
			"\/\/ 需要对v从大到小排列",
			"sort(v.begin(), v.end(),[](int a, int b){return a>b;});"
		],
		"description": "Log output to console"
	},
	"prefixs for leetcode": {
		"prefix": "prefix for leetcode",
		"body": [
			"#include <algorithm>",
			"#include <iostream>",
			"#include <unordered_set>",
			"#include <vector>",
			"#include <math.h>",
			"#include <limits.h>",
			"using namespace std;",
			"struct TreeNode {",
			"   int val;",
			"   TreeNode *left;",
			"   TreeNode *right;",
			"   TreeNode() : val(0), left(nullptr), right(nullptr) {}",
			"   TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}",
			"   TreeNode(int x, TreeNode *left, TreeNode *right)",
			"       : val(x), left(left), right(right) {}",
			"};",
		],
		"description": "prefix for leetcode"
	},
	"main for leetcode": {
		"prefix": "main for leetcode",
		"body": [
			"int main() {",
			"   // 示例二叉树",
			"   Solution solution;",
			"   vector<int> nums = {7, 1, 5, 3, 6, 4};",
			"   int result = solution.maxProfit(nums);",
			"   std::cout << \"result: \" << result << std::endl;",
			"}",
		],
		"description": "main for leetcode"
	}
}
相关推荐
C++ 老炮儿的技术栈5 小时前
VSCode -配置为中文界面
大数据·c语言·c++·ide·vscode·算法·编辑器
Magnum Lehar1 天前
vscode游戏引擎的build-clean配置
ide·vscode·游戏引擎
Magnum Lehar1 天前
vscode游戏引擎的build-all全局配置
ide·vscode·游戏引擎
世由心生1 天前
[从0到1]环境准备--anaconda与pycharm的安装
ide·python·pycharm
四荒八极1 天前
WebStorm编辑器侧边栏
编辑器·webstorm
程序猿小D1 天前
第27节 Node.js Buffer
linux·开发语言·vscode·node.js·c#·编辑器·vim
大鼻噶喳1 天前
使用VSCode开发MCU,FreeRTOS进Hard_Fault调试
vscode·单片机
0点51 胜1 天前
visual studio小番茄插件某些快捷键失效
ide·visual studio
一个处女座的暖男程序猿1 天前
在pyCharm中创建新的conda环境
ide·pycharm·conda