Sublimetext3 如何使用键绑定在Sublime text 3中的缩进块中包装任意文本?

Sublimetext3 如何使用键绑定在Sublime text 3中的缩进块中包装任意文本?,sublimetext3,sublimetext,Sublimetext3,Sublimetext,假设我有: doSomeAction() 我想把它包装成任意文本,这样原始文本就会缩进: if myValue doSomeAction() end 理想情况下,我希望突出显示我的行,按一些键绑定,将原始文本缩进,并将光标放在第一行上,如果myValue(或任何内容),我会在那里键入 我意识到这取决于我所使用的编程语言,主要是关于原始行后面的内容。在Ruby中,我需要end,在Javascript中,我需要},而在Coffeescript中,我什么都不需要:-)我想如果它是空的,那么我可

假设我有:

doSomeAction()
我想把它包装成任意文本,这样原始文本就会缩进:

if myValue
  doSomeAction()
end
理想情况下,我希望突出显示我的行,按一些键绑定,将原始文本缩进,并将光标放在第一行上,如果myValue(或任何内容),我会在那里键入


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

你可以为此创建一个片段。例如:


重要注意事项:Stackoverflows用空格显示此文本,但请记住在代码段中使用制表符进行缩进:请参见本答案底部的Tyler edit and comments

正如您所看到的,它可以有多个部分,以
$
定界位置开始,您可以使用
选项卡导航所有部分,这允许您轻松更改条件的内容或在其中添加额外内容。您可以轻松地更改结构、添加或删除零件、内容、更改默认值等


结果:


?如何创建代码段? 使用菜单工具>新建代码段,然后将给定的文件内容放入新文件中。使用(示例)文件名wrap.sublime-snippet将其保存在升华包/用户中。通常显示的默认文件夹是Packages/User,通常通过菜单首选项>浏览软件包打开软件包文件夹

?如何添加密钥绑定? 转到菜单首选项>密钥绑定用户并在全局数组中添加密钥绑定,使用您喜欢的自由密钥组合并保存文件。如果没有任何其他用户密钥绑定,则此文件内容应如下所示(请记住使用您为代码段指定的名称):

编辑:始终在代码段中使用缩进选项卡,如下所示:

编写包含缩进的代码段时,请始终使用制表符。这个 插入代码段时,选项卡将转换为空格,如果 选项translateTabsToSpaces设置为true


您可以为此目的创建一个片段。例如:


重要注意事项:Stackoverflows用空格显示此文本,但请记住在代码段中使用制表符进行缩进:请参见本答案底部的Tyler edit and comments

正如您所看到的,它可以有多个部分,以
$
定界位置开始,您可以使用
选项卡导航所有部分,这允许您轻松更改条件的内容或在其中添加额外内容。您可以轻松地更改结构、添加或删除零件、内容、更改默认值等


结果:


?如何创建代码段? 使用菜单工具>新建代码段,然后将给定的文件内容放入新文件中。使用(示例)文件名wrap.sublime-snippet将其保存在升华包/用户中。通常显示的默认文件夹是Packages/User,通常通过菜单首选项>浏览软件包打开软件包文件夹

?如何添加密钥绑定? 转到菜单首选项>密钥绑定用户并在全局数组中添加密钥绑定,使用您喜欢的自由密钥组合并保存文件。如果没有任何其他用户密钥绑定,则此文件内容应如下所示(请记住使用您为代码段指定的名称):

编辑:始终在代码段中使用缩进选项卡,如下所示:

编写包含缩进的代码段时,请始终使用制表符。这个 插入代码段时,选项卡将转换为空格,如果 选项translateTabsToSpaces设置为true


令人惊叹的这一切都是我想要的!我喜欢这个代码段有4个占位符,我可以按换行条件、结束文本、回到中间,然后在后面。这个答案也很精彩,向我展示了制作代码片段和键绑定的结果和确切说明。谢谢嗯,我说这个解决方案是完美的有点过早。我在一个多线段上试过,第一行正确缩进,但是后面的行缩进了很多次。在更多的地方尝试过之后,Sublime有时做得对,有时不行。这可能是升华的问题,而不是你的解决方案。我使用了一个标签来缩进代码段,但Stackoverflow将其转换回了空格。我想你也做了同样的事!实际上我只尝试过使用空格,现在我看到制表符应该用来解决缩进问题。谢谢你的编辑。此外,如果答案解决了你的问题,记得接受它。太棒了!这一切都是我想要的!我喜欢这个代码段有4个占位符,我可以按换行条件、结束文本、回到中间,然后在后面。这个答案也很精彩,向我展示了制作代码片段和键绑定的结果和确切说明。谢谢嗯,我说这个解决方案是完美的有点过早。我在一个多线段上试过,第一行正确缩进,但是后面的行缩进了很多次。在更多的地方尝试过之后,Sublime有时做得对,有时不行。这可能是升华的问题,而不是你的解决方案。我使用了一个标签来缩进代码段,但Stackoverflow将其转换回了空格。我想你也做了同样的事!实际上我只尝试过使用空格,现在我看到制表符应该用来解决缩进问题。感谢您的编辑。此外,如果答案解决了您的问题,请记住接受答案。
[
    { "keys": ["ctrl+alt+z"], "command": "insert_snippet", "args": {"name": "Packages/User/wrap.sublime-snippet"}}   
]