vscode 添加代码模板

新建代码模板


添加代码块主体及主要语法如下 (Snippets 语法):"Print to 代码块名称":{

"prefix":"对应触发代码片段的字符",
"body":[
"代码块内容, 必须使用双引号引起来",
"此处为光标首次所在: $1",
"此处为光标二次所在: $2"],
"description":"代码块描述, 会在快捷键右侧注释处展示"
}

其他语法以及模板可携带的参数

1. 占位符之光标 $number

$ 后面紧跟数字可指定代买片段触发并落入编辑器之后的光标位置, 光标位置按照从小到大排序, 可以使用 tab 键切换到下一个.

如上, 代码片段添加到文件中后, 光标首 1 先落在 $1 处, 按 Tab 键, 光标落在 $2 位置

2. 占位符之可选值 ${ number | a,b,c,... }

括号中的 number 对应的是按 tab 之后的光标落点顺序, abc 为可选的项, 用逗号隔开. 例如: ${ 1 | type1 , type2 }, 即为, 第一个光标位置, 候选值: type1 , type2, 也可以候选更多

如果只有一个默认值, 可以写成:${ 1: default }

支持嵌套模式, 例如:${ 1: another ${ 2: company } }

3. 占位符之变量 $variable , ${ variable : default }

使用 $variable, 可以插入变量的值,${ variable : default } 可以在未赋值的情况下提供默认值

可使用变量如下:

文本或文件相关类
变量名 含义
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当前剪贴板中内容

日期和时间类

变量名含义

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当前秒数

4. 转义字符, 作普通字符使用时,$ , } , " ,\ 等 可使用 \(反斜杠) 转义.

我的 java class 模板{

"javaClass-template":{
"prefix":"javaBaseClass",
"body":[
"package $1;",
"",
"",
"",
"/*",
"* Author:gm",
"* Description: $2",
"* Date: Create in ${CURRENT_YEAR}-${CURRENT_MONTH}-${CURRENT_DATE} ${CURRENT_HOUR}:${CURRENT_MINUTE}:${CURRENT_SECOND}",
"*/",
"class ${TM_FILENAME_BASE}{",
"",
"",
"",
"}",
],
"description":"my vsCode javaClassTemplate"
}
}

效果如下:


tab 键切换到下一个 $number