假设我有:
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
导航所有部分, 这允许您轻松更改条件的内容或在里面添加额外的内容。您可以轻松更改结构、添加或删除部件、内容、更改默认值等。结果:
¿ 如何创建片段?
使用菜单 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/