我发现它在大括号上的位置,它只是在默认键绑定中。我复制了"keys": ["enter"] 部分并将正则表达式替换为“(”而不是“{”。
我还必须复制内置的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} }
]
如果正则表达式匹配,则让 enter 击键调用该宏。这给出了完美的结果!
实际上我最近一直在减少 MXS,所以并没有真正玩过它。
感谢 Ghoul Fool 的建议,但看了之后我想要一个更简单的解决方案。
作为对 FrozenKiwi 的回答,我将来自不同地方的一些插件混合在一起,以便可以将 maxscript 从 ST2 发送到 Max。 Here is a link 用于繁重的工作。它确实需要一些工作才能使其运行,但确实非常方便。
其余的只是各种 ST2 优点的点点滴滴:shift+enter 评估选择,ctrl+e 评估所有,很多(和很多)宏,例如"for" + tab 会写format "var: %\n" (var as string)
我不知道我是否可以将它作为一个包发布,因为它来自很多不同的来源。我想我可以检查每件事的许可。
我唯一剩下的障碍是无法将 maxscript 侦听器的输出重定向到 ST2,我已经在互联网上搜索过,但似乎还没有人这样做,而且我自己也不热衷于尝试。我什至不知道是否可以使用 Maxscript 本身 - 它可能必须是使用 SDK 的 C++ 插件 - 但到目前为止我对 C++ 插件的经验很少。不过我不怀疑这是可以做到的。