【问题标题】:Sublime Text 2 Code FormattingSublime Text 2 代码格式化
【发布时间】:2012-04-18 08:10:49
【问题描述】:

首先让我说我来自 Microsoft 背景,Visual Studio 是我的生计。它有一个自动格式化 any 代码语法的命令(键绑定是任意的)。相同的命令适用于 HTML、CSS、Javascript、C# 等。

我已经尝试过 ST2 的插件,但到目前为止,我发现大多数插件都不能在 Windows 机器上工作,如果它们能工作,那是为了一个非常特定的目的,比如 Javascript。

我已经尝试过(并在适当的地方打开了问题):

https://github.com/victorporof/Sublime-HTMLPrettify

https://github.com/jdc0589/JsFormat(这个确实有效)

https://github.com/welovewordpress/SublimeHtmlTidy

是否有任何 ST2 的 Windows 用户发现了任何可以格式化 CSS/HTML/Javascript 的东西,最好是一次性找到?

编辑:由于这个问题获得了很多没有活动的视图,我会说我 am 仍在寻找一个可以在其中格式化各种脚本类型的插件相同的命令。

2013 年 10 月 仍然没有找到任何涵盖 JS+CSS+HTML 的东西,但是我已经确定 JsFormat 是迄今为止最有效且无错误的,并且只针对 JavaScript 的配置最少。

【问题讨论】:

    标签: sublimetext prettify sublimetext2


    【解决方案1】:

    Sublime Text 中的一个类似选项是内置的Edit->Line->Reindent。你可以把这段代码放在Preferences -> Key Bindings User:

    { "keys": ["alt+shift+f"], "command": "reindent"} 
    

    我使用 alt+shift+f 因为我是 Netbeans 用户。

    要格式化您的代码,请按 ctrl+a 和“您的组合键”全选。请原谅我的英语不好。


    或者,如果您不想在格式化之前全选,请在命令中添加一个参数:

    { "keys": ["alt+shift+f"], "command": "reindent", "args": {"single_line": false} }
    

    (根据下面@Supr 的评论)

    【讨论】:

    • 如果您觉得选择所有内容很烦人(有点打断了编辑流程),那么您可以在命令中添加一个参数:{ "keys": ["alt+shift+f"], "command": "reindent", "args": {"single_line": false} } (source)
    【解决方案2】:

    Sublime CodeFormatter 具有对 PHP、JavaScript/JSON/JSONP、HTML、CSS、Python 的格式支持。虽然我使用 CodeFormatter 的时间不长,但它的 JS、HTML 和 CSS “美化”功能给我留下了深刻的印象。我没有尝试将它与 PHP(我不进行任何 PHP 开发)或 Python(我没有经验)一起使用,但是这两种语言在 .sublime-settings 文件中都有很多选项。

    但请注意,这些设置并不容易找到。在 Windows 上,您需要转到您的 %AppData%\Roaming\Sublime Text #\Packages\CodeFormatter\CodeFormatter.sublime-settings。由于我没有 Mac,我不确定 OS X 上的设置文件在哪里。

    至于快捷键,我将这个键绑定添加到我的“Key Bindings - User”文件中:

    {
        "keys": ["ctrl+k", "ctrl+d"],
        "command": "code_formatter"
    }
    

    我使用 Ctrl + KCtrl + D 因为这是 Visual Studio 用于格式化的。当然,您可以更改它,只需记住您选择的内容可能与其他功能的键盘快捷键冲突。

    更新:

    似乎 Sublime Text CodeFormatter 的开发人员让访问.sublime-settings 文件变得更加容易。如果您使用 Package Control 插件安装 CodeFormatter,您可以通过 Preferences -> Package Settings -> CodeFormatter -> Settings - Default 访问设置并使用 Preferences -> Package Settings -> CodeFormatter -> Settings - User 菜单项覆盖这些设置。

    【讨论】:

    • 除了 CodeFormatter 已损坏并且某些文本块会在您每次运行时不断添加额外的缩进。这使它无法使用。
    【解决方案3】:

    我不能说第二或第三,但如果你先安装 Node,Sublime-HTMLPrettify 工作得很好。安装后,您必须设置自己的快捷键。我在 Windows 上注意到的一件事,如果 %PATH% 变量已经很长,您可能需要编辑 Node 的路径(我认为 %PATH% 变量的限制是 1024,之后的任何内容都将被忽略。) /p>

    有一个 Windows 错误,但在问题中有一个修复它。您需要编辑 HTMLPrettify.py 文件 - https://github.com/victorporof/Sublime-HTMLPrettify/issues/12

    【讨论】:

    • 我实际上参与了其中一个未解决问题(仍然未解决)的讨论。我会检查您链接的潜在解决方案并回复您
    • 一次性为 PHP 找到一些东西真的很困难而且很烦人。该工具很棒,但很难找到简单的格式化程序。 Sublime 的 php_beautifier 令人筋疲力尽。所有格式化程序的主要问题是在使用它们之前您必须先处理一两件事情。
    • @JuniorMayhé 你有没有为 PHP 找到任何东西?我真的很喜欢 Aptana 的 CTRL+SHIF+F,它可以格式化任何东西(比如 HTML、JS、PHP、Ruby 和 Python !!!)
    • @Leonel,Aptana 适用于 Linux 对吧?我在 Windows 上使用 Sublime。美化对我来说效果不佳,我将其卸载。
    • @JuniorMayhé 不,它是跨平台的,实际上我在 Windows 上使用它!
    【解决方案4】:

    也许这个答案不是您想要的,但它会使用相同的键盘快捷键格式化任何语言。 解决方案是language specific keyboard shortcuts

    对于您要格式化的每种语言,您都必须找到并下载相应的插件,例如 html 格式化程序和 C# 格式化程序。然后将每个插件的命令映射到相同的键,但上下文不同(参见链接)。

    问候

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-16
      • 2012-02-09
      • 2021-12-23
      • 1970-01-01
      • 1970-01-01
      • 2012-03-18
      相关资源
      最近更新 更多