Sublime Text-Snippet的使用

作者: szhielelp | 来源:发表于2017-07-04 11:18 被阅读0次

    文章最初发表于szhshp的第三边境研究所
    转载请注明

    Sublime Snippet

    从大二开始就一直使用Sublime Text到现在,各方面都还满意,也尝试过使用Atom和其他的IDE依然感觉没有ST顺手。

    正常情况插件里面已经包含了所有你需要的Snippet,但是偶尔会有没有插件里面没有覆盖到的部分。

    然后日常开发一直在用某偏门语言(ノ▼Д▼)ノ,并且几年前对应的扩展插件就已经停止维护了,因此很多的关键字都没能进行Snippet引用。

    怎么办?

    废话!自己写!

    新建Snippet

    首先新建一个Snippet: 菜单->Tools->Developer->New Snippet...

    然后会获得一段代码:

    <snippet>
        <content><![CDATA[Type your snippet here]]></content>
        <!-- Optional: Tab trigger to activate the snippet -->
        <tabTrigger>hello</tabTrigger>
        <!-- Optional: Scope the tab trigger will be active in -->
        <scope>source.python</scope>
        <!-- Optional: Description to show in the menu -->
        <description>My Fancy Snippet</description>
    </snippet>
    

    这里包含4个部分:

    • content:

      其中必须包含<![CDATA[…]]>,否则无法工作, Type your snippet here用来写你自己的代码片段

      注意里面一些特殊字符可能需要使用转义符号

    • tabTrigger:

      用来引发代码片段的字符或者字符串, 比如在以上例子上, 在编辑窗口输入hello然后按下tab就会在编辑器输出Type your snippet here这段代码片段

    • scope:

      表示你的代码片段会在那种语言环境下激活, 比如上面代码定义了source.python, 意思是这段代码片段会在python语言环境下激活.

    • description :

      展示代码片段的描述, 如果不写的话, 默认使用代码片段的文件名作为描述

    环境变量

    点击这里查看所有环境变量列表

    将环境变量插入content中就会输出对应的值:

    
    =================================
    USER NAME:          $TM_FULLNAME
    FILE NAME:          $TM_FILENAME
     TAB SIZE:          $TM_TAB_SIZE
    SOFT TABS:          $TM_SOFT_TABS
    =================================
    
    # Output:
    =============================
    USER NAME:          guillermo
    FILE NAME:          test.txt
     TAB SIZE:          4
    SOFT TABS:          YES
    =============================
    
    

    Fields

    当你输入一段snippet的时候,可能里面有一些参数需要手动输入,设置Filed就是为了方便后续参数的输入

    content中输入下方代码,然后使用这段Snippet的时候,就可以通过Tab键对下方编号位置的文字进行快速输入

    
    =================================
    First Name: $1
    Second Name: $2
    Address: $3
    =================================
    
    

    Mirror Fields

    可以将对应编号改为相同的,这样可以快速选中多个位置并且输入相同的字符

    
    =================================
    First Name: $1
    Second Name: $1
    Address: $1
    =================================
    
    

    Placeholder

    没啥好说的,就是给一些地方设置默认值

    
    =================================
    First Name: ${1:Guillermo}
    Second Name: ${2:López}
    Address: ${3:Main Street 1234}
    User name: $1
    Environment Variable : ${4:$TM_FILEPATH }  #可以设置默认占位符为环境变量
    Test: ${5:Nested ${6:Placeholder}}
    =================================
    
    

    Substitutions

    某种类型的字符转换

    在content中使用以下格式的段落可以实现对字符串的转换:

    
    ${var_name/regex/format_string/}
    ${var_name/regex/format_string/options}
    
    

    下方是一个例子:

    
            Original: ${1:Hey, Joe!}
            Transformation: ${1/./=/g}
    
            # Output:
            Original: Hey, Joe!
            Transformation: =========
    
    

    其中定义了两个mirror fields并且第一个field的默认值为 Hey, Joe!然后第二个被表达式转换成了多个等于号

    相关转换参考: Boost library documentation for regular expressions

    scope

    可以从 : 菜单->Tools->Developer->Show Scope Name 中查看到需要操作的 Scope

    参考文献

    相关文章

      网友评论

        本文标题:Sublime Text-Snippet的使用

        本文链接:https://www.haomeiwen.com/subject/piithxtx.html