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"
	}
}
相关推荐
He少年1 小时前
【AI 辅助案例分享】
人工智能·c#·编辑器·ai编程
Robot_Nav3 小时前
AI 编程助手 Skill 完全指南:VS Code · Trae CN · Claude Code
人工智能·vscode·skill·trae·claude code
vortex54 小时前
Kali Linux 安装与使用 Code-OSS / VSCodium :VSCode 轻量替代
linux·运维·编辑器
lifewange5 小时前
Pycharm和IDEA中安装Cursor的方法
ide·pycharm·intellij-idea
生而为虫7 小时前
在VScode中使用Claude Code agent并配置模型(仅mac电脑实际操作,windows电脑未实际操作如有问题可留言)
windows·vscode·macos
skilllite作者7 小时前
Zed 1.0 编辑器深度评测与实战指南
开发语言·人工智能·windows·python·编辑器·agi
读书札记20221 天前
visual studio 调试技巧总结
ide·visual studio
袋子(PJ)1 天前
2026年常见的配置文件格式——为什么程序员永远在折腾缩进和括号?—— 常见配置文件进化史(md文档很详细)
编辑器
hacker7071 天前
Visual Studio安装教程(C#开发版)
ide·c#·visual studio
千码君20161 天前
flutter: 分享一下基于trae cn 构建的过程
java·vscode·flutter·kotlin·trae