Sublime Text-Snippet的使用
从大二开始就一直使用 Sublime Text 到现在,各方面都还满意,也尝试过使用 Atom 和其他的 IDE 依然感觉没有 ST 顺手。
正常情况插件里面已经包含了所有你需要的 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:
其中必须包含****,否则无法工作, 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 =============================
当你输入一段 snippet 的时候,可能里面有一些参数需要手动输入,设置 Filed 就是为了方便后续参数的输入
content 中输入下方代码,然后使用这段 Snippet 的时候,就可以通过 Tab 键对下方编号位置的文字进行快速输入
================================= First Name: $1 Second Name: $2 Address: $3 =================================
可以将对应编号改为相同的,这样可以快速选中多个位置并且输入相同的字符
================================= First Name: $1 Second Name: $1 Address: $1 =================================
没啥好说的,就是给一些地方设置默认值
================================= 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}} =================================
某种类型的字符转换
在 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
-
对于 Sublime Text 3:
可以从 : 菜单->Tools->Developer->Show Scope Name 中查看到需要操作的 Scope
-
对于 Sublime Text 2:
使用ctrl+` 进入控制台,然后输入
string.other.link.title.markdown meta.link.inline.markdown meta.paragraph.markdown text.html.markdown
那么对应 Scope 就会复制到剪贴板了。
关于本文
文章标题 | Sublime Text-Snippet的使用 |
发布日期 | 2017-07-03 |
文章分类 | Tech |
相关标签 | #SublimeText |
留言板
PLACE_HOLDER
PLACE_HOLDER
PLACE_HOLDER
PLACE_HOLDER
PLACE_HOLDER