【问题标题】:Smart Indenting of brackets (parenthesis) in sublime text 2崇高文本2中括号(括号)的智能缩进
【发布时间】:2014-04-04 14:18:17
【问题描述】:

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

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

编辑: 抱歉 - Chrome 决定我在我不在的时候已经完成了编辑:(

如果我输入if (x) then { 然后enter 我将得到一个格式很好的块,插入符号现在位于箭头处

if(x) then {
    <-
}

但我找不到 sublime text 隐藏它的位置。

我想将此行为复制到普通圆括号 () 而不是获取

if (x) then (
    <-)

【问题讨论】:

  • 你看过Sublime插件Bracketeer或CodeFormatter吗?
  • 您如何从 MaxScript 运行 MxS?这是您发布的项目吗?我很想知道这是怎么回事!

标签: sublimetext2 maxscript


【解决方案1】:

我发现它在大括号上的位置,它只是在默认键绑定中。我复制了"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++ 插件的经验很少。不过我不怀疑这是可以做到的。

【讨论】:

  • 不想编辑您的帖子,但以防万一其他人想知道在哪里进行这些更改(因为我花了一段时间才弄清楚):复制上面的命令代码并另存为Add Line In Braces.sublime-macro 在您的 ~/Library/Application Support/Sublime Text 3/Packages 目录中,然后只需将键绑定的文件引用更改为 res://Packages/User/_&lt;filename&gt;_ - Sublime 知道在哪里查找目录,无需添加完整路径。 (对于ST3,ST2应该有类似的目录结构)
  • 从这个问题了解.sublime-macro,离完美又近了一步。 :)
猜你喜欢
  • 1970-01-01
  • 2015-04-23
  • 2013-09-13
  • 2013-12-25
  • 1970-01-01
  • 2021-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多