自定义Snippet
Sublime Text 的 Snippet 是一种快捷方式,它允许您使用自定义模板或代码片段更快地编写代码。以下是创建 Snippet 的步骤:
- 打开 Sublime Text 编辑器并创建一个新文件。
- 菜单栏选择 “Tools” -> “Developer” -> “New Snippet”,或者使用快捷键
Ctrl+Shift+N(Windows/Linux)/Cmd+Shift+N(Mac)
。 - 在弹出的窗口中输入您的代码片段,使用
$
符号加数字表示需要用户输入的部分,例如:
<snippet><content><![CDATA[
Hello, $1! Welcome to Sublime Text $2.
]]></content><tabTrigger>hello</tabTrigger><scope>source.python</scope>
</snippet>
在这个示例中,$1
和 $2
表示用户需要输入的位置。这个 Snippet 的作用是当您输入 hello
并按下 Tab 键时,就会自动插入 "Hello, [用户输入]! Welcome to Sublime Text [用户输入]."
的代码,并将光标置于第一个需要用户输入的位置。
- 保存代码片段,文件扩展名为
.sublime-snippet
,并将其保存到 Sublime Text 的 “Packages/User” 文件夹中。要打开 “Packages/User” 文件夹,可以使用菜单栏中的"Preferences" -> "Browse Packages"
。 - 使用您定义的 Snippet,只需在编辑器中键入相应的触发器,然后按 Tab 键即可插入 Snippet。
<scope>
标签是 Sublime Text Snippet 的一个可选元素,它用于指定代码片段的作用域。作用域是 Sublime Text 的概念,它表示在哪些情况下应该使用特定的代码片段或插件。
source.python
是 Sublime Text 中 Python 语言的默认作用域,它表示只有在编写 Python 代码时才应该使用这个代码片段。如果您在编写其他类型的代码时使用此代码片段,可能会产生意外的结果或不起作用。
Sublime Text 中有许多不同的作用域,每种语言和文件类型都有自己的作用域。例如,HTML 文件的作用域是 text.html
,JavaScript 文件的作用域是 source.js
。您可以在 Sublime Text 的文档中找到完整的作用域列表。
使用 <scope>
标签指定代码片段的作用域可以确保代码片段只在适当的情况下出现,这可以使代码更加易读和易于维护。
参考DEMO
<snippet><content><![CDATA[
class ${1:ClassName}(${2:object}):def __init__(self, ${3:arg}):${4:super(${1:ClassName}, self).__init__()}self.${3:arg} = ${3:arg}def ${5:method}(self, ${6:arg}):${7:pass}def __str__(self):${8:return f"{self.${3:arg}}"}
]]></content><!-- 触发器:class --><tabTrigger>class</tabTrigger><!-- 作用域:Python --><scope>source.python</scope><!-- 描述 --><description>Python Class Template</description>
</snippet>
这个 Snippet 的触发器是 class
,在编辑器中输入 class
并按下 Tab 键时,就会自动生成以下代码:
class ClassName(object):def __init__(self, arg):super(ClassName, self).__init__()self.arg = argdef method(self, arg):passdef __str__(self):return f"{self.arg}"
在这个代码模板中,使用了多个 $
符号,它们表示用户需要输入的部分。例如,$1
表示用户输入类名,$3
表示用户输入的构造函数参数名称。
此外,这个 Snippet 还包括一些 Python 类的常见方法,例如构造函数和 __str__
方法。在模板中,这些方法都是可选的,用户可以根据需要添加或删除它们。
这个 Snippet 的一个优点是,它可以自动生成一个基本的 Python 类模板,这可以节省编写代码的时间,并确保代码符合 Python 的最佳实践。