为什么谈到Snippet

今天下午在用vscode做小程序的时候,发现很不方便,因为商店里提供的代码片段极为有限,而且平时几乎每天都需要用到代码片段,所以就在思考他们是怎么做到给别人提供代码的,我可以自定义代码片段吗。然后查了下,果然,这在vscode里自带的(好像藏得有点深),是可以自定义的,然后在做完自己的任务后捣鼓了下,基本了解了snippet的语法,突然有种打开新世界大门的感觉。做个记录,上菜了


如何打开snippet配置

这里以vscode为例,其他编辑器大概也差不多。在vscode中快捷键「Ctrl + Shift + P」打开命令窗口,然后输入snippet,选择 [配置用户代码片段],点击后,就可以愉快的进行片段的编写了


Snippet怎么用

先上一个Demo

"html template": {
"prefix": "ht",
"body": [
"<!DOCTYPE html>",
"<html lang=\"en\">",
"<head>",
" <meta charset=\"UTF-8\">",
" <title>${1:$CURRENT_DATE}</title>",
"</head>",
"<body>",
" <div class=\"${2|container,wrapper|}\">",
" ${3}",
" </div>",
"</body>",
"</html>",
],
"description": "create a html frame"
}

效果是这样滴

基础结构

  • 片段名字
  • prefix(前缀,输入的触发条件,比如上面例子中当我输入ht后,就能tab出来片段)
  • body(主体部分,在里面根据语法定义自己需要的代码片段)
  • description(说明,片段的具体描述)

基础语法

  • 每个逗号代表一整行的结束,双引号需要用转义字符 \
  • $number表示光标跳转的顺序,比如$1表示光标首次需要跳转的位置,相同序号的会在一起,另外$0表示最终光标位置
  • 变量,在未赋值的情况下提供默认值,这里提供一些变量
    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: 当前秒数。
  • 可选项,当光标到该处的时候弹出一些可选择项,使用 | ,| 后面是自己提供的可选项 我这里是提供了两个值,值之间使用逗号进行分隔

  • body的高级语法,可以参考这里,写的很详细

最后

效果

最后附上把自己的snippet放到market上的教程,使劲戳这里

最新文章

  1. 04.ubuntu下kvm 命令行安装64位ubuntu报&quot;Couldn&#39;t find hvm kernel for Ubuntu tree.&quot;的问题
  2. Google C++单元测试框架GoogleTest---GTest的Sample1和编写单元测试的步骤
  3. memset函数详解
  4. 【英语魔法俱乐部——读书笔记】 3 高级句型-简化从句&amp;倒装句(Reduced Clauses、Inverted Sentences) 【完结】
  5. Hash_P1026毒药?解药?
  6. 高级四则运算器—结对项目反思(193 &amp; 105)
  7. UITabBar背景、icon图标颜色、被选中背景设置以及隐藏UITabBar的两种方式
  8. Spark大型项目实战:电商用户行为分析大数据平台
  9. PL/SQL联系oracle成功可以sql解决的办法是检查表的名称无法显示
  10. POJ-1700 Crossing River---过河问题(贪心)
  11. [Android] Android读取Asset下文件的最简单的方法总结(用于MediaPlayer中)
  12. sample function
  13. RocketMQ专题2:三种常用生产消费方式(顺序、广播、定时)以及顺序消费源码探究
  14. python类属性在继承中的修改的影响
  15. 德卡Z90读卡器读取社保卡,德卡Z90读卡器CSharp示例程序源码
  16. [转] Python的import初探
  17. codevs 1423 骑士 - Tarjan - 动态规划
  18. Nokogiri爬虫教程
  19. maven的初步理解
  20. Selenium IDE界面学习

热门文章

  1. JZ-021-栈的压入、弹出序列
  2. 在 k8s 以外的分布式环境中使用 Dapr
  3. python之random.seed()函数
  4. Ubuntu 16.04.3 Server 版安装过程图文详解
  5. Vmware安装Ubuntu16.4的过程及出现问题的解决
  6. VMware安装win7后,安装VMware Tools时报错安装程序无法继续。本程序需要您将此虚拟机上安装的操作系统更新到SP1
  7. 内网渗透----windows信息收集整理
  8. 配置Openfiler做ISCS实验
  9. SIMOTION D435-2 PN报错1915,无法进入RUN状态 解决方法
  10. 多线程常用代码 Future Callable Runable