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