Sublime Text 2:将HTML标签的内容格式化为一行

时间:2012-10-30 16:48:21

标签: sublimetext2

好的,我的情况与此处关于格式化HTML的所有主题有点不同。此外,我已经安装了大约每个HTML格式化插件,结果不一致,没有一个能真正解决我的问题。

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

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

我也尝试了他们在 this thread 中提到的内容,它只在某种程度上适用于缩进,但不是真的用于'true'标记格式化。

我想做的就是转动这个标记:

<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中的内容或手动修改或其他任何方式来实现此目的?

提前致谢。

3 个答案:

答案 0 :(得分:4)

注意:此解决方案仅适用于ST2,因为此时(2014年7月31日)HTMLTidy不适用于ST3。

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

  1. 转到:Preferences -> Key Bindings - User。您将编辑文件 默认(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-settings Preferences -> Package Settings -> HtmlTidy -> Settings - Default

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

  6. 保存文件。

  7. 返回HTML文件,然后在一行中选择要格式化的代码的部分。是的,如果您选择整个标记o_O,它将不起作用。它只会保留<body>标记内的内容,并会删除其他内容(<html><head>等)。

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

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

  10. 祝你好运。

答案 1 :(得分:2)

如果你的元素是统一的,那么更简单的解决方案就是选择你想用 alt + f3 粉碎到一行的所有<li>,或者为了更好的控制,< kbd> ctrl + d ,然后按两次 ctrl + j 将这些行连接在一起。完成!

如果失败,请在多次选择每个标签的一部分后,使用 ctrl + shift + j 选择标签内的所有内容。使用向左或向右箭头键将光标击中右边或左边,然后可以从那里删除。

答案 2 :(得分:0)

按F12键可以设置一行快捷键

转到菜单首选项 - &gt;键绑定 - 用户

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

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