SublimeText:保存时自动缩进?

问题描述 投票:0回答:4

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

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

我将感谢您的帮助:)

sublimetext auto-indent autoformatting
4个回答
2
投票

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

如果您想在每次保存时格式化代码,您可以创建一个宏,然后将该宏绑定到 ctrl+s。应该做类似以下的事情:

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

将其另存为“indent_on_save.sublime-snippet”在您的 Packages/User/ 目录中(通过选择“首选项”->“在 Sublime Text 中浏览包”轻松打开此目录)。

然后,您可以通过转到“首选项”->“按键绑定”-“用户”并添加以下内容来重新绑定 ctrl+s 以使用此代码段:

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

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


0
投票

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

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

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

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


0
投票

有一个“保存时重新缩进”包:

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


0
投票

截至 2024 年,我发现实现此目标的最简单方法是安装

JsPrettier
软件包,然后在其设置中将
auto_format_on_save
更改为
true
(默认设置为
false
)。

© www.soinside.com 2019 - 2024. All rights reserved.