介绍
Sublime Text是一款跨平台文本编辑器,拥有丰富的功能和插件来提高你的编程效率。其中一个很酷的特性是代码段。代码段是预定义的文本块,可以通过短代码触发器自动插入到编辑器中。这篇文章将帮助你学习如何在Sublime Text 3中设置自己的代码片段。
设置自己的代码片段
步骤1:创建代码段文件
首先,创建一个文件夹,用于存放你的代码段。
重要提示:这里的文件夹可以放在任何位置,但应将其保存在你的~/.config/sublime-text-3/Packages/User/目录中,这是Sublime Text 3中用户自定义设置的存储位置。如果你的用户设置是在存储在其他目录中,将文件夹存储在相应的目录中。
打开Sublime Text 3,进入工具栏中的「Tools」-> 「Developer」 -> 「New Snippet…」。这将会打开一个代码段模板,内容如下:
<snippet>
<content><![CDATA[
Hello, World!
]]></content>
<tabTrigger>hw</tabTrigger>
<scope>source.python</scope>
</snippet>
代码段文件使用XML语法编写。其中snippet标签是代码段的根节点,content标签包含你要插入的代码段,tabTrigger标签是你触发代码段的关键字,scope标签定义了代码段在何种情况下可用。sublime text通过scope进行代码高亮,用户设置的语言在Sublime Text 3中都有一个scope。
步骤2:定义代码段
现在,让我们定义一个简单的代码段。以下代码是用于打印“Hello, World!”的Python代码段:
<snippet>
<content><![CDATA[
print("Hello, world!")
]]></content>
<tabTrigger>hello</tabTrigger>
<scope>source.python</scope>
</snippet>
我们将代码段保存为python.sublime-snippet,并将其保存到 ~/.config/sublime-text-3/Packages/User/ 目录中。此时,你需要重新启动Sublime Text 3,以便文档能够被正确加载。
在这个简单的设置中,我们为Python定义了一个代码段,该代码段将打印“Hello, World!”。当你在Python文件中键入关键字“hello”并按下Tab键时,代码段将自动插入到文件中,代码段将被写入“print(”Hello,world!“)”。好的开端!
步骤3:参数化代码片段
好了,我们已经定义了第一个代码段。然而,我们可以使它更加强大,以便它适用于不同的环境。为此,我们将添加一个参数,使代码段更具普遍性。
以下是将把这个代码段变成参数化代码段的内容:
<snippet>
<content><![CDATA[
char = "${1:char}"
print("Hello, ${2:world}${1}!")
]]></content>
<tabTrigger>hello</tabTrigger>
<scope>source.python</scope>
</snippet>
例如,输入python代码块:
print("Hello, world!")
我们可以使用代码段输出:
char = "my friend"
print("Hello, world" + char + "!")
如你所见,在这个代码段中:
- $ {1:char}表示我们的参数。这是一个使用默认值的可选参数。如果不传递参数,它将成为“char”。
- $ {2:world}是关键字。这将添加你想要添加的文本,本例中为“world”。
重要提示:Sublime Text中的代码段是可以像函数那样进行参数化的。这意味着您可以传递一些代码片段以便以可操作的方式使用它们,而无需必须编辑文本文件。
步骤4: 使用符合标准的占位符
使用符合标准的占位符(变量)时,Sublime Text为您提供了另一个优秀的机制:TAB键(indentation)可以在占位符之间移动。
假设你要写一个if-else代码段 —— 代码段需要有一个布尔条件、一个代码块。
这是Python中if-else代码段的定义:
<snippet>
<content><![CDATA[
if ${1:condition}:
${2:# indented contents}
else:
${3:# indented contents}
]]></content>
<tabTrigger>ifelse</tabTrigger>
<scope>source.python</scope>
</snippet>
这个定义中的Tab符号是一个符合标准的占位符,你可以在两个输入框之间切换。
使用符合标准的占位符来编写代码段是一种强大的技巧,其效果与Python具有相当(一致的)行为。
步骤5:使用snippet条件
在Sublime Text中,你可以为代码段分配条件,以使代码段在特定的环境中更好地工作。
例如,如果您有多个Python版本,并且某些代码段只适用于Python3,则可以使用条件跟踪器。这是一个条件代码段的定义,仅在Python3下可用。
<snippet>
<content><![CDATA[
print("Hello, world!")
]]></content>
<tabTrigger>hello</tabTrigger>
<scope>source.python</scope>
<!--这是代码段条件-->
<!--Python 3 only-->
<!-- <condition>python.version >= "3"</condition>-->
</snippet>
参考条件:
1. file_name:File Name
2. file_extension: 扩展名
3. file_base_name:基本文件名称
4. platform:平台
5. selector:语法选择器
6. syntax:语法
7. after_switch:切换之后
8. environment:环境
9. language:语言
10. has_parent:有父级
11. selection:选择
你可以使用条件跟踪器来定义实现代码段条件的>模板语言,例如,如果文件名包含字符串“unittest”,那么可以使用以下语法选择器:
<scope>source.python</scope>
结论
在Sublime Text 3中设置自己的代码段非常容易。通过这篇文章的介绍,你现在已经知道代码段的XML结构、怎么创建它、以及怎么通过添加默认值和条件选择使其更加灵活。如果你想要提高自己的Sublime Text 3设计水平,改善自己的工具架设,自定义代码块(代码片段)是非常重要的。