如何使用 Sublime Text 片段提高生产力
长话短说,最近我被分配到工作中的一个项目,我必须创建很多 bash 脚本。我有 python 背景,并使用 Jupyter Notebook 来完成我的所有开发工作。对我来说,bash 脚本的问题是它令人困惑的括号用法和所有脚本中重复的代码块。
在那之前,我一直在使用 Nano 编辑器创建 bash 脚本。 Nano 提供了一些作为终端编辑器的基本功能,但没有超出一点。因此,我进行了研究并选择“SUBLIME TEXT 3”作为 bash 和其他编程语言的首选编辑器。我为 bash 脚本创建了大量重复函数、单行代码和控制块的片段,这不仅节省了时间,还提高了我的工作效率。
什么是片段?
代码片段是许多现代文本编辑器或 IDE 编辑器附带的流行编程特性/功能。您可以将代码片段视为可以在需要时重复使用的模板。片段不限于特定的编程语言。您可以简单地创建一个新的代码片段,添加您想要插入的任何文本并指定一个触发词。我们将在接下来的部分中看到所有这些功能。
列出 Sublime Text 中定义的片段
默认情况下,sublime text 附带了一些预定义的 bash 代码片段。它将根据我们正在从中搜索片段的当前文件智能地显示片段。我在 shell 脚本中,当我调用命令 pallet 并输入 snippet 时,它会自动为 bash 提供已定义片段的列表。
您可以通过两种方式访问 Sublime Text 中的片段。
- 菜单驱动 ⇒ 精彩文本 → 工具 → 片段
- 命令面板 ⇒ SUBLIME TEXT → 命令面板 (CTRL+SHIFT+P) → 输入片段
在 Sublime Text 中创建新的代码片段
当我们创建新的代码片段时,Sublime text 提供了 XML 格式的默认模板。要创建模板,请转到SUBLIME TEXT → TOOLS → DEVELOPER → NEW SNIPPET。
我们来了解一下模板定义并修改参数。
- 要插入的实际内容或代码块应放置在
内。我将为“标题评论”创建一个片段。您创建的每个脚本都会有一个标题注释,定义有关脚本的信息,如作者姓名、创建日期、版本号、部署日期等。 - Tabtrigger(可选)绑定充当代码片段触发器的“TEXT”。当输入触发器名称并按“TAB”时,将插入代码片段。默认情况下是有注释的,删除注释,并为触发器添加一些文本。选择一个描述性的简短名称。例如:我选择“hcom”来插入标题注释。它可以是您选择的任何内容。
- 范围(可选)定义您的代码片段所绑定的语言。您可能同时使用 2 或 3 种不同的编程语言,并且您可能对不同编程语言的不同代码片段使用相同的名称。在这种情况下,范围控制您的代码片段应插入哪种语言,从而避免冲突。您可以从链接获取范围列表。或者,您可以转到工具→开发人员→显示范围名称或按
获取您正在使用的语言的范围名称。 - 描述(可选)在默认模板中不可用,但您可以使用它来定义有关此代码段功能的一些上下文。
现在我们已经做了一些基本的事情。我们定义了一个片段,它将插入一个简单的标题注释,该注释与“hcom”选项卡触发器绑定并源自 shell 脚本。
现在让我们打开一个新的 bash 文件并“输入 hcom”。如果您查看下图,当我“键入 h”时,我的代码段定义就会弹出,并带有我们给出的描述。我所要做的就是按 <tab>
键将其展开。
领域
字段使用 $1
、$2
、$3
等表示。借助字段,您只需按 <tab>
键即可跳转到放置字段标记的位置。
如果您看一下我的代码片段,我添加了两个字段标记 $1
和 $2
,它的作用是当我插入代码片段时,光标将放置在 $1
这样我就可以在该位置输入一些内容。
然后我必须按 <tab>
键跳转到下一个标记 $2
并输入一些内容。值得注意的是,当您在 2 个位置有任何相同的标记(例如 $1
)时,更新一个位置的字段将更新相同的字段 ($1)
。
<tab>
键 → 跳转到下一个字段标记。
键 → 跳转到上一个字段标记。
键 → 跳出字段循环。$0
→ 控制退出点。
占位符
占位符就像大括号内定义的键值对 $ {0:
字段标记将使用默认值进行标记。您可以更改该值或保持原样。插入片段后,如果按 Tab 键,光标将置于默认值处。
现在,片段已使用默认值插入,并且鼠标放置在 $1
处,在本例中为 v1
。我可以修改该值,或者只需按 <tab>
键即可移至下一个标记。
Sublime Text 代码片段的唯一缺点是,您无法将所有代码片段分组到一个文件中。每个文件只允许一个片段,这很麻烦。但还有其他选项,例如创建 .sublime-completion 文件。要了解更多信息,请查看文档。
我的代码片段文件存储在哪里?
代码片段文件应使用后缀 .sublime-snippet
保存。转到首选项 → 浏览包。它将打开存储用户定义设置的目录。转到将保存代码片段文件的目录“User”。
片段生成器
Snippet-generator-app 根据我们的输入提供基于网络的自动片段生成。它适用于 Sublime Text、Atom 和 VSCode。在左侧输入描述、选项卡触发器和内容,这将在页面右侧生成实时代码。
将从 Ambari API 获取集群名称的示例片段。
这就是今天的全部内容。我们已经看到了在 sublime text 中使用snippets 的优势。我只是使用一个简单的伪文本作为示例来演示片段功能,但还有更多内容。我还要指出的是,此功能在所有编辑器/IDE 中都可用,例如 Vim、Atom、Eclipse、Pycharm >、Vscode 等。