主要始因是在写 Note 和 WiKi 时,需要在文章前插入 Mate,每写一篇都需要重复输入,很麻烦;转到 VS Code 后,最开始是用扩展 vscode-fileheader
来实现的,虽然有些不足,但也够用。但后来看文档时发现居然代码片段这个东西,自定义更强,而且还是原生自带的,就果断的把用了不到一天的 vscode-fileheader
禁用。
代码片段说明
Snippet 是一种通过 前缀
+ 快捷键
的方式来插入源代码中的代码片段,方便输入一些重复性的代码。代码片段分全局片段和指定语言片段,前者对所有文件生效,后者只针对特定语言。下面以默认示例来说明:
其中:
- pring to console: 代码片段名称
- prefix: 触发前缀
- body: 代码主体
- $1、$2 为制表符
- description: 描述
关于 body 语法
制表符
制表符即之前出现过的 $1、$2,当插入代码片段时,可用 Tab 键使光标按顺序在制表符间移动。其中 $0 表示最终停留的位置,如果不同位置使用同一个制表符,将同步更新。
占位符
占位符是带有默认值的制表符,如 `$1{1:draft}:
- 可以有多个默认值
- ${1|draft, public|},包裹在管道符之间,使用逗号分割;注:没有冒号
- 可嵌套
- ${1:tag1 ${2:tag2}}
变量
使用 $name
可以插入变量,如文件名和日期等;以下仅仅选几个常用的:
- TM_FILENAME:当前文档的文件名
- TM_FILENAME_BASE:当前文档的文件名(无后缀名)
- TM_DIRECTORY:当前文件目录
- TM_FILEPATH:当前文件的完整文件路径
- CLIPBOARD:剪贴板的内容
日期和时间相关:
- CURRENT_YEAR:年份
- CURRENT_MONTH:月份
- CURRENT_DATE:天
- CURRENT_HOUR:小时
- CURRENT_MINUTE:分钟
- CURRENT_SECOND:秒
创建代码片段
美中不足的是,使用变量获取的标题如果不想要,不能直接取消。
关于快捷键
- 设置代码片段:Shift + Command + P,输入
snippets
,选择对应语言即可; - 修改设置中的
"editor.tabCompletion"
为true
,便可直接使用 Tab 键直接插入代码片段。
参考
- 2018-07-02
- 创建
- 2018-08-14
- 增加新建代码片段的快捷键