marco命令在sublime中按
ctrl+q
,开始输入,完成后再次按ctrl+q
完成宏的录制,之后按ctrl+shift+q
即可调用,宏命令是将刚刚录制的宏保存在宏缓存中,如果想持久使用,可以将宏保存起来并绑定到相应的快捷键。在工具栏>保存宏即可将宏保存,后结结缀
.sublime-macro
编辑快捷键配置文件如下
[
{"keys": ["ctrl+alt+l"], "command": "run_macro_file", "args":{"file":"res://Packages/User/fuck.sublime-macro"}},
]
这样,你每次按
ctrl+alt+l
,即可以调用之前的宏文件。snippetssnippets是sublime中的代码段,在开发中有一些重复出现的代码,我们可以将它们收录到snippets中,然后设置一个关键置触发,而不用重复的复制粘贴。
snippets的结构如下:
xyzzy source.pythonMy Fancy Snippet
结构解析:
- 如果想显示$,需要使用$,因为$在snippets的功能关键字,需要进行转义。
- 间距用tab来进行
- content必需在中,不然无法正常使用。
- 如果要使用]]>作为文本,可以使用,
]]$NOT_DEFINED>
,sublime在插入前会将$NOT_DEFINED替换成空
触发关键字,在相应位置输入关键字,然后在其后按下
tab
键即可将代码段引入。$PARAM1 .. $PARAMnArguments passed to the insert_snippet command. (Not covered here.)
$SELECTIONThe text that was selected when the snippet was triggered.
$TM_CURRENT_LINEContent of the cursor’s line when the snippet was triggered.
$TM_CURRENT_WORDWord under the cursor when the snippet was triggered.
$TM_FILENAMEName of the file being edited, including extension.
$TM_FILEPATHPath to the file being edited.
$TM_FULLNAMEUser’s user name.
$TM_LINE_INDEXColumn where the snippet is being inserted, 0 based.
$TM_LINE_NUMBER Row where the snippet is being inserted, 1 based.
$TM_SELECTED_TEXTAn alias for $SELECTION.
$TM_SOFT_TABSYES if translate_tabs_to_spaces is true, otherwise NO.
$TM_TAB_SIZESpaces per-tab (controlled by the tab_size option).
区域输入:
First Name: $1
Second Name: $2
Address: $3
User name: $1
在内容区域如此使用可以用tab键切换相应位置并进行修改,如果你想多点选择,名取一样即可。默认选择完毕停留在文本末尾,当然也可以通过
$0
来进行设置末尾位置(镜像区域),你还可以通过如下方法来设置tab区域的默认值First Name: ${1:Guillermo}
Second Name: ${2:López}
Address: ${3:Main Street 1234}
User name: ${4:$TM_FULLNAME}
当然,嵌套使用完全没有问题
Test: ${1:Nested ${2:Placeholder}}
区域的正则用法:
- 普通用法 将各个区域互相进行正则匹配,如:
Original: ${1:Hey, Joe!}
Transformation: ${1/./=/g}
# Output:
Original: Hey, Joe!
Transformation: =========
三个
/
中第一个区间为正则,第二个区间为要替换的内容,i 不区分大小写
g 替换所有匹配
m 多行匹配
- 高级应用
可以两个区域转换大小写和,
Transformation: ${1/^(\w)|(?:_(\w))/(?1\u$1:)(?2 \u$2:)/g}
Original: ${1:text_in_snail_case}
# Output:
Transformation: Text In Snail Case
Original: text_in_snail_case
这两个区域内容可以根据所填写的规则动态的改变。你也可以使用前面说过的系统变量。
# In file MyModule.js:
Transformation: ${TM_FILENAME/(\w+)\.js/\1/g}
# Output:
Transformation: MyModule
comletions
当我们在sublime中编写代码时, 经常能看到很多提示和,即我们经常说的自动补全,当每个字符在变化时, 自动补全的内容也会发生改变。
我们也可以自己进行编写`sublime-completions`文件 {
"scope": "text.html - source - meta.tag, punctuation.definition.tag.begin","completions":
[
{ "trigger": "a", "contents": "$0" },
{ "trigger": "abbr\t", "contents": "$0" },
{ "trigger": "acronym", "contents": "$0" }
]
}
这里介绍一些自动补全的编写,和snippets一样,可以使用
$n
来进行定位,补全后按tab按会在相应位置停留,n代表开始到按tab的次数。在trigger中加上
\t
就可以实现分层效果,说不清楚,上图{
"scope": "text.html - source - meta.tag, punctuation.definition.tag.begin",
"completions":
[
{"trigger": "fuc\tk", "contents": "${0:fuck} "},
]
}
上图中fuck中间加入了\t
文章图片
示例1
他会在我们敲了fuc后进行触发,并将\t后的提示以灰色的形式显示在右边
【巧用sublime|巧用sublime,不做重复敲键的码农】注意: 如果要出现$请使用\$,需要进行转义
scope在snippets和completions中都有一个scope的配置项,顾名思义,就是这些snippets和completions在哪些各类的文件中会生效
sublime文档地址:http://docs.sublimetext.info/en/latest/index.html