2

我想知道是否有任何方法可以在 ST3 中为指定事件自动格式化代码(此处保存)。例如,我希望 Sublime 在每次保存我的代码(以及任何语言)时格式化我的代码。

有插件吗?或者我可以在配置中创建一个快捷方式来触发这个过程吗?

我会感谢你的帮助:)

4

3 回答 3

2

有一个插件可以格式化 PHP、JS、HTML、CSS 和 Python,可以通过包管理器获得:https ://sublime.wbond.net/packages/CodeFormatter

如果您想在每次保存时格式化代码,您可以创建一个宏,然后将该宏绑定到 ctrl+s。应该执行以下操作:

[
    {
        "command": "code_formatter",
        "args": null
    },
    {
        "command": "save",
        "args": null
    }
]

将其保存为 Packages/User/ 目录中的“indent_on_save.sublime-snippet”(通过选择 Preferences -> Browse Packages in Sublime Text 轻松打开此目录)。

然后,您可以通过转到 Preference -> Key Bindings - User 并添加以下内容来重新绑定 ctrl+s 以使用此代码段:

{
    "keys": ["ctrl+s"],
    "command": "run_macro_file",
    "args":{"file": "Packages/User/indent_on_save.sublime-macro"}
}

包管理器中可能还有其他插件可以格式化其他语言。

于 2014-05-14T09:48:24.897 回答
0

感谢您对 jsnprtr 的帮助,但我找到了另一个解决方案。不幸的是,使用 ST3,我无法在宏中运行保存命令。我试图设计一个小插件,但没有成功。

我发现这个插件允许在自定义快捷方式上运行多个命令:https ://github.com/jisaacks/ChainOfCommand

有了它,我现在可以在保存时格式化我的代码:我只需运行缩进并保存命令 :)

如果有些人在使用 ST 编写代码时有其他技巧来改进自动格式化,我会感谢他们的贡献;)

于 2014-05-14T17:14:34.150 回答
0

有一个“reindent on save”包:

https://packagecontrol.io/packages/Reindent%20on%20save

于 2021-06-14T17:22:33.433 回答