VS Code自定义用户代码片段(C++)

本文详细介绍了如何在Visual Studio Code中创建和使用用户自定义代码片段,包括设置步骤、代码片段的构成(如前缀、占位符和内置变量),以及几个示例片段的应用。通过个性化代码片段,可以大大提高编码速度和代码质量。

vs code支持用户自定义代码片段,用起来很方便,下面来介绍一下如何使用用户代码片段

1.用户代码片段简单介绍

1.1 点击左下角设置

在这里插入图片描述
在这里插入图片描述

1.2 在cpp.json中设置要定义的代码片段

"Print to console": {
"prefix": "log",
 	"body": [
 		"console.log('$1');",
 		"$2"
 	],
 	"description": "Log output to console"
 }`

第一行字符串:代码片段名称
prefix:快捷代码的前缀
body:要生成的代码
description:代码片段描述

制表位

使用制表符,可以使编辑器光标在摘要内移动。使用$1,$2指定游标的位置,该数字是将按Tab键访问的顺序,而$0表示最终光标的位置。多次出现相同的制表位被链接并同步更新。

占位符

占位符是带有值的制表符例如 ${1:foo}。占位符文本将被插入和选择,以便可以轻松更改。占位符可以嵌套,例如 ${1:another
${2:placeholder}}

选择号

占位符可以选择作为值。语法是用逗号分隔的值枚举,例如用竖线字符括起来${1|one,two,three|}。插入代码段并选择占位符后,选项将提示用户选择其中一个值。

如下是我自己定义的几个代码片段

	"int main(int argc, char *argv[])" :{
		"prefix": "im",
		"body": [
		"int main(int argc, char *argv[])",
		"{",
		"\t$1",
		"\treturn 0;",
		"}"
		],
		"description": "main函数"
	},
	
	"头文件防止重复包含": {
			"prefix": "#inf",
			"body": [
				"#ifndef _${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H_",
				"#define _${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H_",
				"", "$1", "", "", "", "", "", "", "", "",				
				"#endif"
			],
			"description": "头文件防止重复包含"

	},

	"Author info" : {
		"prefix": "#author",
		"body": [
			"/*",
 			" * @Author: Author",
 			" * @Date: $CURRENT_YEAR-$CURRENT_MONTH-$CURRENT_DATE $CURRENT_HOUR:$CURRENT_MINUTE:$CURRENT_SECOND", 
 			" * @Last Modified by: Author",
 			" * @Last Modified time: $CURRENT_YEAR-$CURRENT_MONTH-$CURRENT_DATE $CURRENT_HOUR:$CURRENT_MINUTE:$CURRENT_SECOND",
			" * @Description: $1", 
			"*/",
		],
		"description": "作者信息"
	},
	
	"for(auto &value : continer)" :{
		"prefix": "forr",
		"body": [
			"for(auto &${1:value} : ${2:continer})",
			"{",
			"\t$0",
			"}"
		],
		"description": "for(auto &value : continer)"
	},

	"返回值判断if" : {
		"prefix": "ie",  //if error
		"body": [
			"if(${1:ret} ${2|< 0,> 0,== 0,== nullptr, != nullptr|})",
			"{",
			"\t${3|printf,fprintf|}(\"$4\");$0",
			"}"
		],
		"description": "返回值判断"
	},

第一个代码片段生成main函数
在这里插入图片描述
生成的代码片段
在这里插入图片描述

第二个代码片段在.h文件中可以快速添加防止头文件重复包含的预处理
在这里插入图片描述
生成的代码片段
在这里插入图片描述

第三个代码片段是快捷生成作者信息的
在这里插入图片描述
生成的片段:
在这里插入图片描述

第四个代码片段生成forrange循环
在这里插入图片描述
生成的代码片段
此时光标停留在value上可以直接修改value的值,然后按Tab键光标将停留在continer上,可以修改该值,最后按Tap光标将会跳到$0处
在这里插入图片描述
第五个代码片段生成判断返回值的代码
在这里插入图片描述
生成的代码
在这里插入图片描述
按下Tab后在这里插入图片描述
在这里插入图片描述

2 用户代码片段中的内置变量

使用$name,您可以插入变量的值。

TM_SELECTED_TEXT   当前选定的文本或空字符串
TM_CURRENT_LINE    当前行的内容
TM_CURRENT_WORD    光标下的内容或空字符串
TM_LINE_INDEX    从零开始的当前行号
TM_LINE_NUMBER    从一开始的当前行号
TM_FILENAME    当前文档的文件名
TM_FILENAME_BASE    基当前文档的文件名,不带扩展名
TM_DIRECTORY    当前文档的目录
TM_FILEPATH    当前文档的完整文件路径
CLIPBOARD    剪贴板的内容
WORKSPACE_NAME    打开的工作区或文件夹的名称

日期:
CURRENT_YEAR    当前年份
CURRENT_YEAR_SHORT    当前年份的最后两位数字
CURRENT_MONTH    两位数的当前月份(例如“02”)
CURRENT_MONTH_NAME    当前月份的英文全名(例如’July’)
CURRENT_MONTH_NAME_SHORT    当前月份的英文短名称(例如’Jul’)
CURRENT_DATE    今天几号
CURRENT_DAY_NAME    英文的星期几(例如’Monday’)
CURRENT_DAY_NAME_SHORT    英文星期几的短名称(例如’Mon’)
CURRENT_HOUR    24小时制的当前小时
CURRENT_MINUTE    当前分钟
CURRENT_SECOND    当前秒
CURRENT_SECONDS_UNIX    自格林威治时间以来的秒数(1970年1月1日)
 
注释:
BLOCK_COMMENT_START    区块注释开始 <!--
BLOCK_COMMENT_END    区块注释结束 -->
在php中会变成/*和*/
LINE_COMMENT    单行注释: PHP中: //

文字转换(正则)
${TM_FILENAME/[\\.]/_/}    将文件名中的.换成_
${TM_FILENAME/[\\.-]/_/g}    将文件名中的.和-换成_
${TM_FILENAME/(.*)/${1:/upcase}/}    将文件名完全转为大写
${TM_FILENAME/[^0-9^a-z]//gi}    删除非字母和数字的字符,包括符号
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值