在崇高文本2中智能缩进括号(括号)

时间:2014-04-04 14:18:17

标签: sublimetext2 maxscript

我有一个很棒的设置,可以在sublime text 2中编辑和运行maxscript。

我最近想要的一件事就是用普通的圆括号来模拟或复制大括号的行为

修改 对不起 - 当我不在时,Chrome决定我在那里完成编辑:(

如果我输入if (x) then {,然后enter,我会得到一个格式正确的块,插入符号为箭头

if(x) then {
    <-
}

但我无法找到崇高文字藏在哪里。

我想将此行为复制到正常的圆括号()而不是

if (x) then (
    <-)

1 个答案:

答案 0 :(得分:6)

我已经在大括号中找到它的位置,它只是在默认的键绑定中。我复制了"keys": ["enter"]部分并用&#34;(&#34;而不是&#34; {&#34;。

取代了正则表达式

我还必须复制内置的AddLineInBraces.sublime-macro并向其添加{"command": "left_delete" },

[
    {"command": "insert", "args": {"characters": "\n\n"} },
    {"command": "left_delete" },
    {"command": "move", "args": {"by": "lines", "forward": false} },
    {"command": "move_to", "args": {"to": "hardeol", "extend": false} },
    {"command": "reindent", "args": {"single_line": true} }
]

如果正则表达式匹配,则使输入击键调用该宏。这给出了完美的结果!

我实际上在最后一次使用较少的MXS,所以很难真正玩它。

感谢 Ghoul Fool 提出的建议,但看了之后我想要一个更简单的解决方案。

在回答 FrozenKiwi 时,我已经将来自不同地方的几个插件混合在一起,所以我可以从ST2向Max发送maxscript。 Here is a link对于繁重的工作。它确实涉及一些工作以使其运行但确实非常方便。

其余的只是各种ST2善良的点滴和单调:shift + enter来评估选择,ctrl + e来评估所有,很多(和很多)的宏,例如&#34;对于&#34; +标签会写format "var: %\n" (var as string)

我不知道我是否可以将它作为一个包发布,因为它是从很多不同的来源获取的。我猜想,我可以检查每件事的许可证。

我唯一剩下的障碍是无法将输出从maxscript监听器重定向到ST2,我已经在互联网上搜索过,似乎还没有人这样做过,而且我并不热衷于自己尝试。我甚至不知道Maxscript本身是否可以使用 - 它可能必须是使用SDK的C ++插件 - 但我迄今为止使用C ++插件的经验很少。我不怀疑它可以做到。