VSCode Markdown 自定义代码片段
在写博客的时候,觉得如果每一篇博客都要写头顶上的title,date…. 等信息的话会很繁琐,想到vscode 有自定义的代码缩写功能,在网上找了一下决定记录一下。
作用
- 快速构建一些繁琐且具有一定常用性的语句
自定义代码片段
打开文件->首选项->配置用户代码片段(点击)
图示
选择Markdwon.json 或者 搜索 Markdwon.json
或者选择新建全局代码片段文件(最好选择Markdwon.json)
图示
| 代码 | 示意 |
|---|---|
| scope | 字段中填写以逗号分隔的作用域 Id,如果 scope 字段为空或根本没有设置,那么将适用于所有语言。(如果选择的是Markdown.json的话不用写这个) |
| prefix | 是用于触发代码片段的一段文字,当你输入这个文字的时候,你将可以展开这个代码片段的内容并将其插入。 |
| body | 你可以使用 $1 $2 来作为按下 Tab 时将切换的键盘焦点区域,$0 是插入完成后最终光标所在的位置。你也可以使用 ${1:label} 或 ${2:another} 这样的方式来增加占位符,同样 Id 的占位符将会自动关联起来。 |
| description | 代码解释,没多少用,但是写着方便以后查看 |
代码与图示
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
"blog header info": {
"prefix": "blog",
"body": [
"---",
"title: \"${1:在此处添加标题}\"",
"date: ${CURRENT_YEAR}-${CURRENT_MONTH}-${CURRENT_DATE} ${CURRENT_HOUR}:${CURRENT_MINUTE}:${CURRENT_SECOND} ",
"updated: ${CURRENT_YEAR}-${CURRENT_MONTH}-${CURRENT_DATE} ${CURRENT_HOUR}:${CURRENT_MINUTE}:${CURRENT_SECOND}",
"copyright_author: Star ",
"copyright_url: ",
"description: ${2:笔记描述}",
"categories: ${3|后端笔记,前端笔记,SQL笔记,工具笔记,算法笔记,计算机笔记,其他笔记|}",
"tags: ${4|JAVA,Mysql,Springboot,Linux,计算机基础,算法|}",
"---",
"",
"${0:在此处编辑 的博客摘要}",
"",
],
"description": "markdown 头部信息模版"
}
}
打开Markdown自定义补全功能
文件->首选项->设置->(右上角)打开设置,将下面这段设置写入setting.json文件
自定义补全代码与步骤示图
1
2
3
"[markdown]": {
"editor.quickSuggestions": true
}
关于代码片段编写的更多细节
关于文件名称
在阅读前面的博客内容时,你可能注意到了:添加全局代码片段的时候,文件扩展名为 .code-snippets,例如 blog.code-snippets;添加语言特定的代码片段的时候,扩展名为 .json,如 markdown.json。这个规则无论在全局还是在工作区,都是一样适用的。
光标停留点(Tabstop)
光标停留点
使用 $1 $2 这些可以作为按下 Tab 键时的光标停留位置,而 $0 无论出现在代码片段的哪个地方,都会是最后一个光标位置。
占位符
占位符
${1:占位符 Id} 可以表示一个占位符。当你插入此代码片段的时候,会出现 占位符 Id 字样,然后光标会选中这几个字以便你进行修改。
占位符可以嵌套,例如 ${1:walterlv 的 ${2:嵌套占位符}}。这时,光标会首先选中所有的文字,随后按下 Tab 之后选中后面那一部分。
在前面那个比较复杂的博客代码片段中,${1:在此处添加标题} 就是一个占位符,而 ${0:在此处编辑 blog.walterlv.com 的博客摘要} 就是光标的最终停留点。
下拉选项
下拉选项
使用 ${1|选项 1,选项 2,选项 3|} 可以创建三个选项的下拉框。
在前面的博客代码片段中,${2|dotnet,csharp,uwp|} 就是一个下拉选框,帮助我选择常用的一些博客类别。
变量
变量
使用 $变量名 或者 ${变量名:变量的默认值} 可以创建变量。
在 Visual Studio Code 中,你有这些变量可以使用:
-TM_SELECTED_TEXT - 在插入代码片段的时刻选中的文本 -TM_CURRENT_LINE - 在插入代码片段的时刻光标所在的行 -TM_CURRENT_WORD - 在插入代码片段的时刻光标所在的词 -TM_LINE_INDEX - 在插入代码片段的时刻的行号(0 为首行) -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 - 秒
所以在上面比较复杂的博客模板中,我们可以直接插入当前的时间 ${CURRENT_YEAR}-${CURRENT_MONTH}-${CURRENT_DATE} ${CURRENT_HOUR}:${CURRENT_MINUTE}:${CURRENT_SECOND} +0800。









