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は

@マーク:コードで更新
Casebash

@Casebash私はあなたのコードでTidyを試しましたが、私にとってはタグを追加するだけでした。 copypastecode.com/46216
ロバートSチャシオ

@calvera:プレーンテキスト、ドキュメントタイプがHTMLに設定されていないことを確認
Casebash

3
@Casebash:これはhtmlに設定されていました...参考までに、Notepad ++のTidyプラグインについて覚えていることから、テキストファイルを介して構成されています。そのため、Tidyの構成に問題がある可能性があります。
ロバートSチャシオ

回答:


20

+ Aを押してすべてを選択しますText->Indent Selection


TextMateの年で、この機能を見たことも使用したこともない... \ o /
brasofilo

残念ながら、これは完全なXMLフォーマットではありません。インデントの誤った行を保持し、同じ行のタグを別々の行に分割しません。Textmate 2.0-rc.4を使用します。
アレクサンダークリメチェック


1

私は他の答えと少し交差する何かを指摘したいと思います:

書式設定(または再インデント)するテキストを選択すると、TextMateはそれだけに特定のアクションを適用します。そのため、ドキュメントをCMD+しAてから(バンドル> HTMLメニューまたはCTRL+ SHIFT+ Hショートカットを使用して)Tidyを適用すると、ほとんどの場合、インデントのみが行われ、検証に関するアラートはスキップされます)。


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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.