分享sublime3自定义snippets小技巧

1. Sublime Text是什么?

Sublime Text是一款轻量级的跨平台文本编辑器,被广泛应用于编写代码、标记和写作。它支持各种编程语言和文件类型,并具有强大的自定义功能。

2. Snippets是什么?

Snippets是Sublime Text的一个强大的功能,可以帮助用户快速输入代码块。Snippets可以是任何编程语言,可以定义为代码片段,模板,标记或任何其他包含文本和代码的重复内容。

2.1 创建并编辑自定义Snippets

要创建自己的Snippets,您需要创建一个新的Snippet文件。首先,在Sublime Text中选择“Tools”选项卡中的“New Snippet”选项,然后输入你要新建的Snippet的名称和文件类型。添加代码块后,点击保存,文件将被保存到Sublime Text的Packages目录中的User文件夹中。

为了在Sublime Text中编辑现有的Snippets,您需要在左侧的侧边栏中选择“Package”文件夹,在其中找到希望编辑的Snippets文件,然后单击文件名以打开文件并开始编辑。

2.2 Snippet的基本结构

Snippet通常由两个基本部件组成:先有触发器部分,其次是代码部分。要触发代码部分,您需要输入触发器,然后按Tab键。触发器可以是一两个字母,或者是一个单词或短语,这取决于您想要使用它的情况。

现在我们来看一下一个示例Snippet的基本结构,以了解如何在Sublime Text中编写自定义Snippets。

<snippet>

<content>

put your code here

]]></content>

<tabTrigger>tabTrigger</tabTrigger>

<scope>source.scope</scope>

</snippet>

在上面的代码段中,<snippet>标签中包含了一个简单的XML片段。其中<content>标签中包含指定代码块的实际代码,<tabTrigger>标签指定为代码块创建的触发器,<scope>标签指定将在其中使用代码块的范围。

2.3 自定义Snippets的实例

现在我们通过展示一个示例代码块来让您更好地了解如何使用自定义Snippets。

<snippet>

<content>

if (${1:condition}) {

${2:#some code...}

} else {

${3:#some code...}

}

]]></content>

<tabTrigger>ifelse</tabTrigger>

<scope>source.python</scope>

</snippet>

上面的代码块中的触发器是'ifelse',并且定义了一个简单的Python if/else语句。请注意,代码块中的每个部分都以$ {n:placeholder}的形式包含,其中n是一个数字,代表每个部分的顺序,placeholder是在占位符被替换后应被插入的文本。

3. Sublime Text Snippets的进阶技巧

3.1 插入占位符

对于复杂的Snippets,您可能需要在其中插入更多的占位符。要在代码块中插入占位符,请使用$ {n:placeholder},其中n是另一个数字(占用的数字该是唯一的),placeholder是将在替换过程中被替换的文本。

3.2 使用变量:$TM_FILENAME

Sublime Text Snippets可以使用一些内置的变量,以便在代码块或命令中插入Sublime Text中的一些信息。例如,使用变量$TM_FILENAME,您可以轻松地在代码块中插入当前正在编辑的文件的名称。

<snippet>

<content>

<?php require_once('${1:$TM_DIRECTORY/' . $TM_FILENAME . ''}'); ?>

]]></content>

<tabTrigger>inc</tabTrigger>

<scope>source.php</scope>

</snippet>

上面的代码块将在PHP文件中使用,其中包含一个特定路径下的文件。在代码块中,您可以看到如何使用$TM_FILENAME变量来获取当前编辑的文件的名称,然后将其插入文件路径中。

3.3 使用变量:$TM_SELECTED_TEXT

如果您只想将Snippets应用于当前选择的文本中,而不是整个文件,那么可以使用另一个内置变量:$TM_SELECTED_TEXT。

<snippet>

<content>

<div class="${1:class}">${2:$TM_SELECTED_TEXT}</div>

]]></content>

<tabTrigger>divclass</tabTrigger>

<scope>text.html.basic</scope>

</snippet>

上述代码块将在HTML文件中使用,并将所选文本包装在<div>标记之内。注意,通过将光标放在插入标记之内,您可以轻松更改它的class名称,并可以使用$TM_SELECTED_TEXT变量在光标位置插入当前文本选择。

3.4 自动格式化

Snippet还是Sublime Text自动标签格式化的有效方式。您可以使用Tab键来快速导航到不同的占位符部分,并在其中插入并调整代码。

通过在Snippet中使用占位符,您可以使Sublime Text更易于使用,更有效。随着您对Snippet的了解的深入,您可以开始创建更复杂,更定制化的代码块,以符合您的工作流程。