【问题标题】:Sublime Text 2: Format HTML tags' content in one lineSublime Text 2:在一行中格式化 HTML 标签的内容
【发布时间】:2012-10-20 01:54:03
【问题描述】:

好的,我的情况与这里关于格式化 HTML 的所有线程都有些不同。此外,我已经安装了几乎所有 HTML 格式化插件,结果好坏参半,但没有一个能真正解决我的问题。

另外,配置这些插件可能很困难,因为我不是程序员,而且一些作者没有提供足够的信息来定制他们的插件。

目前唯一可以格式化我的 HTML 的插件是 HTMLTidy,问题是每个标签占用了太多空间。请参阅下面的 HTML 示例。

我还尝试了他们在 this thread 中提到的内容,它仅在一定程度上适用于缩进,但不适用于“真正的”标记格式。

我要做的就是转这个标记:

<ul>
   <li>
     item here
   </li>
   <li>
     item here
   </li>
   <li>
     item here
   </li>
</ul>

或者这个:

<p>
   Content...
</p>

进入这个:

<ul>
   <li>item here</li>
   <li>item here</li>
   <li>item here</li>
</ul>

还有这个:

 <p>Content...</p>

将每个标签的内容与开始/结束标签放在单独的一行中对我来说是浪费空间。

知道如何通过修改 TidyHTML 中的内容或手动或任何其他方式来完成此操作吗?

提前致谢。

【问题讨论】:

标签: sublimetext2


【解决方案1】:

注意:此解决方案仅适用于 ST2,因为目前 (7/31/14) HTMLTidy 不适用于 ST3。

我想出了一个临时解决方案,无论如何都不理想,但是...

  1. 转到:Preferences -&gt; Key Bindings - User。您将编辑文件 Default (Windows).sublime-keypmap

  2. 将这两条指令添加到该文件中(注意,指令需要 [ ]括号内):

     [
       { "keys": ["ctrl+shift+r"], "command": "reindent" , "args": {"single_line": false}},
       //Indent code -- http://stackoverflow.com/questions/8839753/formatting-html-code-using-sublime-text-2
    
       { "keys": ["ctrl+alt+t"], "command": "html_tidy"}
       //HTMLTidy key binding
     ]
    
  3. 保存文件。

  4. 确保您已安装 HTMLTidy。打开 HTMLTidy 的设置文件HtmlTidy.sublime-settingsPreferences -&gt; Package Settings -&gt; HtmlTidy -&gt; Settings - Default.

  5. 查找"indent": true,(包括双引号和逗号)并将其更改为false

  6. 保存文件。

  7. 返回您的 HTML 文件并在一行中选择要格式化的代码的一节。是的,如果您选择整个标记 o_O,它将不起作用。它只会留下&lt;body&gt; 标签内的内容,并且会删除其他所有内容(&lt;html&gt;&lt;head&gt; 等)。

  8. CTRL+ALT+T 执行 TidyHTML。这将缩小您的标记并将标签放在一行中。

  9. 最后按CTRL+SHIFT+R执行缩进。

祝你好运。

【讨论】:

    【解决方案2】:

    如果您的元素是统一的,一个更简单的解决方案是使用 alt+f3 选择所有要压缩到一行的 &lt;li&gt;s,或者,为了获得更多控制, ctrl+d,然后只需按两次 ctrl+j 即可将线条连接在一起。完毕!

    如果做不到这一点,在多选每个标签的一部分后,使用 ctrl+shift+j 选择标签内的所有内容。用向左或向右箭头键将光标打到右边缘或左边缘,您可以从那里删除。

    【讨论】:

    • 您的解决方案似乎相当不错,我用一些基本的 HTML 进行了测试,它似乎在大多数情况下都有效。我会记住您的建议,并将其与我提出的解决方案进行比较,然后再决定哪个解决方案是最好的。给你点赞。感谢您的提示。
    • 干杯!但请注意这一点:如果行以引号(单引号或双引号)结尾,则不会插入空格。
    • 不错!正是我需要的……+1
    【解决方案3】:

    F12可以设置一行快捷键

    转到菜单首选项 -> 键绑定 - 用户

    { "keys": ["f12"], "command": "reindent"}
    

    详情请见http://how-to-sublime-text.blogspot.com/2014/11/reformat-code.html

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-10
    • 2012-04-18
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多