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"
	}
}
相关推荐
FinAnalyzer1 小时前
如何在 InsCodeAI 上搭建并使用 Jupyter Notebook 环境?
ide·python·jupyter
SoveTingღ2 小时前
【开发环境配置】VScode里面配置cmake遇到的问题
c语言·vscode·cmake·嵌入式软件·开发环境配置
vsropy2 小时前
VScode输出中文乱码问题解决
ide·vscode·编辑器
患得患失9492 小时前
【前端】【vueDevTools】使用 vueDevTools 插件并修改默认打开编辑器
前端·编辑器
写点什么啦4 小时前
一键修复ipynb,Jupyter Notebook损坏文件
ide·python·jupyter
DIY全栈开发4 小时前
ESP32S3 Ubuntu vscode如何使用USB-JTAG调试
linux·vscode·ubuntu
Hi_kenyon7 小时前
Vscode的常用快捷键(摆脱鼠标计划)
ide·vscode·计算机外设
唯之为之10 小时前
如何快速无缝的从 vscode 转向AI编辑器 cursor、kiro、trae 等
vscode·ai编程
写写闲篇儿10 小时前
经典IDE之Turbo C
ide
Generalzy10 小时前
从 Print 到 Debug:用 PyCharm 掌控复杂程序的调试之道
ide·性能优化·pycharm