Textmate可以很好地缩进HTML吗?


17

Textmate是否具有很好地缩进HTML的功能?

HTML Tidy使它缩进-但似乎也删除了标记。(这不是完全正确的HTML,但是仍然!)

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:tal="http://xml.zope.org/namespaces/tal" xmlns:metal="http://xml.zope.org/namespaces/metal">
    <head>
        <title></title>
    <script type="text/javascript" src="http://www.speechapi.com/static/lib/swfobject.js"></script>
    <script type="text/javascript" src="http://www.speechapi.com/static/lib/speechapi-1.1.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<body>
    <!-- All above disappears -->       
    <p>Test</p>
    <!-- All below disappears-->
</body>
</html>

您能举一个删除标记的html示例吗,这很令人惊讶
user151019 2010年

@Mark:已更新代码
Casebash 2010年

@Casebash我用您的代码尝试了Tidy,对我来说,它仅添加了标签。 copypastecode.com/46216
罗伯特·

@calvera:确保将文档类型设置为HTML,而不是纯文本
Casebash 2010年

3
@Casebash:它设置为html ...仅供参考,据我所知,有关Notepad ++的Tidy插件,它是通过文本文件配置的。因此,也许Tidy配置有问题。
罗伯特·西亚乔

Answers:


20

您可以按+ A选择所有Text->Indent Selection


多年的TextMate,从未见过或使用过此功能... \ o /
brasofilo

不幸的是,这不是完整的XML格式:它会使行缩进,并且不会将同一行中的标签拆分为单独的行。使用Textmate 2.0-rc.4。
亚历山大·克里姆采切克


1

我想指出一些与其他答案有所不同的东西:

如果您选择要设置格式(或重新缩进)的文本,则TextMate将仅对此应用特定的操作。因此,如果您CMD+ A文档,然后应用Tidy(通过Bundles> HTML菜单或使用CTRL+ SHIFT+ H快捷方式),则大多数情况下只会缩进,跳过有关验证的警报(有时是不必要的,因为我们可能正在处理页面摘要)。


0

如果安装开发人员工具,则可以改用Xcode或Dashcode。它们在计算机随附的安装光盘中免费提供。我相信Xcode和Dashcode都具有语法突出显示功能。

如果您想要非常好的软件,请获取Coda。100美元的价格有点贵,但我绝对会说这是值得的。它具有语法突出显示和(对我来说很重要的)自动补全功能。


0

是。TextMate的内置HTML捆绑包中的Tidy调用可以处理您的HTML。

TextMate的捆绑包-> HTML-> Tidy产生:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:tal="http://xml.zope.org/namespaces/tal" xmlns:metal="http://xml.zope.org/namespaces/metal">
    <head>
        <title></title>
        <script type="text/javascript" src="http://www.speechapi.com/static/lib/swfobject.js">
</script>
        <script type="text/javascript" src="http://www.speechapi.com/static/lib/speechapi-1.1.js">
</script>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js">
</script>
    </head>
    <body>
        <!-- All above disappears -->
        <p>
            Test
        </p><!-- All below disappears-->
    </body>
</html>

在您的示例代码上。什么都没消失。您还会收到以下警告:

line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 2 column 5 - Warning: <body> isn't allowed in <head> elements
line 1 column 1 - Warning: <html> proprietary attribute "xmlns:tal"
line 1 column 1 - Warning: <html> proprietary attribute "xmlns:metal"

0

我在使用内置Text -> Indent Selection或Tidy解决方案时遇到的问题是,它不能与部分HTML代码一起正常使用。例如,在WordPress中进行编辑或在Ruby on Rails中使用局部函数时,这很重要。

对我有用的解决方案是使用我在这里找到的John Watson的自定义Perl脚本向捆绑包添加命令:http : //snipplr.com/view.php?codeview&id=28256

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.