在Visual Studio Code 中创建模板(代码片段)

1.新建全局模板
  • 打开 File -> Preferences -> User Snippets ( 在macOS上 Code -> Preferences -> User Snippets)
  • 选择 New Global Snippets file 选项,如图:
    图1.png

    点击选择

  • 在弹窗框内输入自己喜欢的名称,然后保存
    图2.png
  • 在代码编辑栏里看看到刚才创建的文件
    图3.png
  • 到这里模板已经创建完成,下面只需要写入你自己需要的文件即可,这个是创建的JSON文件,所以只能在{...}内写需要的代码
2.字段定义解释
{
    "React-Native Class":{
        "scope": "javascript,typescript",
        "prefix": "rnc",
        "body": [
            "import React, { Component } from 'react'",
            "import { StyleSheet, View, Text ,Image } from 'react-native'",
            "",
            "/**",
            "*",
            "* @ author: ",
            "* @ email: ",
            "* @ date: $CURRENT_YEAR-$CURRENT_MONTH-$CURRENT_DATE $CURRENT_HOUR:$CURRENT_MINUTE",
            "*/",
            "class $TM_FILENAME_BASE extends Component {",
            "",
            "\trender() {",
            "\t\treturn (",
            "\t\t\t<View style={styles.container}>",
            "\t\t\t</View>",
            "\t\t)",
            "\t}",
            "}",
            "",
            "const styles = StyleSheet.create({",
            "\tcontainer: {",
            "\t\tflex: 1",
            "\t}",
            "})",
            "",
            "export default $TM_FILENAME_BASE"
        ],
        "description": "创建一个React-Native类"
    }
}

此处以React-Native 类文件进行举例说明,常用的字段也只有这几个(scope,prefix,body,description)

  • 如代码的React-Native Class 字段:给模板取的名称(这个可根据自己喜欢取名)

  • scope(固定字段):文件创建属性,比如javascript,typescript,可不写,但不能乱写

  • prefix(固定字段):智能提示选项卡,比如你取名rnc,当你创建一个文件后,输入rnc后就会出现智能选项卡

  • body (固定字段):字符串数组,放置代码片段,一句代码占用一个元素。

    注:缩进使用 "\t" ,尽量不要使用空格
    
  • description(固定字段):顾名思义,这个模板的描述,智能提示卡上可显示(所以应简短明了)

3.语法解释
  • $1,$2,$3...$0:制表位,表示代码片段创建好后光标显示的位置,$1表示光标初始位置,$2表示用户按下键盘上的Tab键光标移动的下一个位置,依次类推,$3表示再次按下Tab键的下一个位置,数字表示Tab按下几下显示的位置,$0表示光标结束的位置

     注:如果两个字段一样,都可以使用相同的,用户输入时,两处同时输入
    
  • ${1:className}:预占制表位,和上边一样,只是上边是显示空白,这个会在光标处显示预占位className,这个className可以写你自己需要的东西,当Tab选中时可修改,比如${1:params1},${2:params2}

    注:预占制表位可嵌套使用,比如${1:another ${2:placeholder}}
    
  • ${1|one,two,three|}:占位符有选择的值,当用户Tab选中是显示可选的值,用户给出的值中选择。语法:在| |(双竖线)内写预选参数,多个参数用“,”隔开,根据需要,数字1也是可变的

  • $name 或 ${name:default}:插入可变的值,当一个变量不设置,默认或空字符串插入,当一个变量是未知的(即它的名字不是下面定义的变量)变量的名称,那插入之后将转换成占位符

可以使用的基本变量

    TM_SELECTED_TEXT 当前选中的文本或空字符串
    TM_CURRENT_LINE 当前行中的内容(即你哪行输入模板,即显示当行)
    TM_CURRENT_WORD 词的内容根据光标或空字符串
    TM_LINE_INDEX 基于zero-index的行号(即你在哪行创建的快速模板的行号 减1)
    TM_LINE_NUMBER 基于一个索引的行号(即你在哪行创建的快速模板的行号)
    TM_FILENAME 当前文档的文件名
    TM_FILENAME_BASE 当前文档的文件名(不包括扩展)
    TM_DIRECTORY 当前文档的目录
    TM_FILEPATH 当前文档的完整的文件路径
    CLIPBOARD 剪贴板的内容

可插入的日期和时间变量

    CURRENT_YEAR 当前日期的年(example '2019')
    CURRENT_YEAR_SHORT 当前年的后两位(example '19')
    CURRENT_MONTH 当前月两位表示法 (example '02')
    CURRENT_MONTH_NAME 当前月全称 (example 'March')
    CURRENT_MONTH_NAME_SHORT 当前月简称 (example 'Mar')
    CURRENT_DATE 当天两位表示法 (example '06')
    CURRENT_DAY_NAME 星期 (example 'Monday')
    CURRENT_DAY_NAME_SHORT 星期简称 (example 'Mon')
    CURRENT_HOUR 24小时制,小时
    CURRENT_MINUTE 分
    CURRENT_SECOND 秒

例如:

{
    "hello": {
        "scope": "javascript,html",
        "prefix": "hello",
        "body": "$CURRENT_YEAR-$CURRENT_MONTH-$CURRENT_DATE $CURRENT_HOUR:$CURRENT_MINUTE"
    }
}

输出:当前的年月日(例如:2019-03-06 11:03)

可插入的块语法

    BLOCK_COMMENT_START 例如在PHP中输出/*或者HTML中输出<!--
    BLOCK_COMMENT_END 例如在PHP中输出*/或者HTML中输出 -->
    LINE_COMMENT 例如在PHP中输出//或者HTML中输出<!-- -->

例如:

{
    "hello": {
        "scope": "javascript,html",
        "prefix": "hello",
        "body": "$BLOCK_COMMENT_START Hello World $BLOCK_COMMENT_END"
    }
}

输出:

<!-- Hello World -->

创建代码片段基本就会用到这些,其他的一些命令使用比较少,就不一一解释了!有兴趣的可以查看Visual Studio Code 官方文档

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,463评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,868评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,213评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,666评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,759评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,725评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,716评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,484评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,928评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,233评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,393评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,073评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,718评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,308评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,538评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,338评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,260评论 2 352

推荐阅读更多精彩内容