本文主要是介绍Sublime Text-Snippet的使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章最初发表于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:
其中必须包含
环境变量
点击这里查看所有环境变量列表
将环境变量插入content中就会输出对应的值:
=================================
USER NAME: $TM_FULLNAME
FILE NAME: $TM_FILENAMETAB 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中的Snippet
- http://docs.sublimetext.info/en/latest/extensibility/snippets.html
- http://manual.macromates.com/en/scope_selectors
这篇关于Sublime Text-Snippet的使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!