VSCode-用户代码片段
本文最后更新于:2020年11月5日 下午
信息
在编写代码的过程中使用用户代码片段能使得代码编写速度更快
VSCode文档-用户代码片段:https://code.visualstudio.com/docs/editor/userdefinedsnippets
创建用户代码片段
创建代码片段文件
文件->首选项->用户片段
点击以后会出现一些选项,可以打开以前的代码片段文件进行修改,或者新建一个代码片段文件
代码片段文件
代码片段的编写语法就和JSON
一样
支持编写C语言类型的注释(也就是”//“注释)
一个代码片段文件可以编写任意个代码片段
编写代码片段
在代码片段文件中写入用户代码片段
此处我以Python头举例
1 |
|
内容 | 值 | 说明 |
---|---|---|
代码片段名 | “Python-Commom” | 仅仅是一个名字 |
“scope” | “python” | 代码段使用的语言名称列表 例如 “python,c” |
“description” | “Python声明……定,文件信息” | 代码片段的描述,在使用时能够看到它,方便理解代码片段作用 |
“prefix” | [“header”] | 匹配关键词,可以填入多个 在你编写代码时填入部分匹配关键词时,会提示出用户代码片段 |
“body” | [“#!/usr/bin/env py……put the import lib”,”$0”,] | 代码片段内容,插入到原本代码中的代码片段 以list的形式记录,一个元素为一行内容 可以使用一些已经定义好了的变量来填充内容。例如: $1 代表每一次按Tab 后光标跳跃到的位置$0 表示光标最终位置$TM_FILENAME 代表当前文件名 |
测试使用
代码片段语法
制表符 Tabstops
$0
, $1
, $2
……
使用制表符能够在代码片段中用Tab
键快速移动
- 在数字大于0时,按照从小到大移动,既
$1
-Tab
->$2
-Tab
->$3
- 最终,光标会
Tab
到$0
的位置,既最后的位置 - 如果设置多个一样的制表符(比如在多个位置输入
$1
),那么会同时在多个地方输入
占位符 Placeholders
${1:foo}
,${2:what}
……
存在默认值的制表符。如果你什么都不输入,直接Tab
会使用占位符的值设置这个位置
选项 Choice
${1|one,two,three|}
, ${2|op1,op2|}
……
存在默认值的制表符。你可以选择,设定的值来填入
变量 Variables
编辑相关
变量 | 信息 |
---|---|
TM_SELECTED_TEXT | 当前选择的字符(没有则为空) |
TM_CURRENT_LINE | 当前行的内容 |
TM_CURRENT_WORD | 当前光标下的单词(没有则为空) |
TM_LINE_INDEX | 从0开始的行序号 |
TM_LINE_NUMBER | 从1开始的行号 |
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 | 时间戳 |
变量转换 Variable transforms
在代码片段正式插入到代码之中前,你可以对其中的变量的值,通过正则表达式进行一些替换处理
案例:去除文件名的扩展名
1 |
|
案例:用
_
取代.
1 |
|
案例:用
_
取代.
和-
1 |
|
案例:将文件名改为大写字母
1 |
|
案例:只保留数字与字母
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!