sublimetext3 - 如何使用键绑定(bind)将任意一段文本包装在 Sublime Text 3 的缩进 block 中?

标签 sublimetext3 sublimetext

假设我有:

doSomeAction()

我想将它包装在一些任意文本中,以便原始文本缩进:
if myValue
  doSomeAction()
end

理想情况下,我想突出显示我的行,按一些键绑定(bind),并将原始文本缩进,并将光标放在第一行,我将在其中键入 if myValue (管他呢)。

我意识到这取决于我所使用的编程语言,主要是关于原始行之后的内容。在 Ruby 中,我需要 end ,在 Javascript 中,我需要 } ,在 Coffeescript 中,我什么都不需要 :-) 我想如果它留空,我可以按 tab为了到达那个位置,我可以自己输入需要的内容。

最佳答案

您可以创建一个片段 为了这个目的。例子:

<snippet>
<content><![CDATA[
${1:if condition}
    $SELECTION${3}
${2:end}
${4}
]]></content>
</snippet>

重要提示: Stackoverflows 使用空格显示此文本,但请记住在片段中使用制表符进行缩进:请参阅此答案底部的 Tyler 编辑和评论。

如您所见,它可以有多个以 $ 开头的部分。分隔位置,您可以使用 tab 导航所有部分, 这允许您轻松更改条件的内容或在里面添加额外的内容。您可以轻松更改结构、添加或删除部件、内容、更改默认值等。

结果:

Sublime wrap snippet

¿ 如何创建片段?

使用菜单 Tools > new Snippet,然后将给定的文件内容放入新文件中。使用(示例)文件名 wrap.sublime-snippet 将其保存在 sublime Packages/User 中。通常 Packages/User 是显示的默认文件夹,通常 Packages 文件夹是通过菜单 Preferences>Browse Packages 打开的。

¿如何添加键绑定(bind)?

转到菜单 Preferences > Key Bindings-user 并将您的键绑定(bind)添加到全局数组中,使用您喜欢的自由组合键并保存文件。如果您没有任何其他用户键绑定(bind),则此文件内容应该是这样的(请记住使用您为片段提供的名称):
[
    { "keys": ["ctrl+alt+z"], "command": "insert_snippet", "args": {"name": "Packages/User/wrap.sublime-snippet"}}   
]

编辑:始终在片段中使用制表符缩进 recommended by Sublime Text help :

When writing a snippet that contains indentation, always use tabs. The tabs will be transformed into spaces when the snippet is inserted if the option translateTabsToSpaces is set to true.

关于sublimetext3 - 如何使用键绑定(bind)将任意一段文本包装在 Sublime Text 3 的缩进 block 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35368584/

相关文章:

c++ - 更改sublime text的默认输入源

sublimetext3 - 在 sublime text 3 中查看所有状态栏文本

sublimetext - Sublime Text 3 可以支持特定于项目的片段吗?

基于 Sublime Text 3 的 Python 2.7 不打印 '\uFFFD' 字符

python - Sublime Text 3-发送命令至Sublime Console

javascript - Markdown 语法高亮未按预期工作

python - 如果没有运行 REPL 并发送到 REPL,则启动 REPL 的快捷方式

javascript - 如何在 Sublime 中不将 'do'/'package' 等对象键高亮为关键字?

regex - 在 Sublime Text 2 中,如何删除所有双空行?

git - Sublime Text -根据文件的修订状态为文件着色