Sublime Text(別名prettify / beautify / format)のHTML自動インデント機能またはプラグインはありますか?


23

たとえば、変更するもの:

<section><article><h1></h1><p></p></article></section>

に:

<section>
  <article>
    <h1></h1>
    <p></p>
  </article>
</section>

...全ページおよびスニペットで動作します。

  • 組み込みのEdit > Line > Reindent設定はこれを行いません
  • プラグインHTMLTidyはタグを追加headおよびbodyタグ付けするため、パーシャルに対しては機能せず、他にもさまざまな問題があります
  • プラグインタグにはさまざまな問題があり、本質的には機能しません
  • プラグインHTMLPrettifyにはさまざまな問題があり、node.jsが必要で、数か月後に更新されていません
  • gist.github.com/mcdonc/3898894はそれを行うと主張していますが、Emacsが必要です

(Notepad ++には自動インデント、Dreamweaverにはソースフォーマットの適用、Aptanaにはフォーマットなどがあります。)

Tagプラグインはインラインタグを誤って処理します。たとえば、次のスニペットで使用します。

<p>foo<a>bar<span>baz<span>qux</span></span></a></p>

結果:

<p>
    foo
    <a>
        bar
        <span>
            baz
            <span>qux</span>
        </span>
    </a>
</p>

質問は何ですか?あなたの投稿から質問が何であるか明確ではありません。
ブラッドパットン

タイトルを編集して、疑問文にします。Sublime TextでHTMLを自動インデントする方法を見つけようとしています。
user110241


おかげで、私はそのスレッドで各ソリューションを試しましたが、どれも機能しません。それらの多くがこのスレッドで動作しない理由をリストしました。
user110241

これが最良の解決策だと思います:jsbeautifier.org複数のインラインタグをフォーマットするという同じ要件がありました。これは本当にうまく機能します。崇高なテキストにも適切なマークアップを作成し、チャンクを閉じることができます。それはのようにCLIでも利用可能だnpmjs.com/package/js-beautify
サイクリシュナディープ

回答:


18

これreindentはスニペットに対して常に機能するとは限りません。Tagプラグインを使用できます(パッケージコントロールからインストール)。次に、ctrl+ shift+を押してp、を入力しtagます。オプションが表示されますAuto-Format tags on document。を選択してを押しEnterます。できます。


1
元の投稿で述べたように、タグプラグインは壊れています。特にインラインタグの処理、特に非常に悪いバグです。著者は、「すべてを書き直す」必要があると言っています。再インデントはHTMLではまったく機能せず、インデントを修正しません。タグを特定のインデントレベルに揃えるだけです。
user110241

まあ、タグは私のために働いた。HTMLスニペットを使用しました。それは完璧に機能しました。また、reindentはHTMLに対して機能しますが、特定の条件下では機能します。
Bibhas

このスニペットでタグのオートフォーマットを使用してみて<p>foo<a>bar<span>baz<span>qux</span></span></a></p>ください:私が意味するものを確認してください。また、HTML5ボイラープレートの一部であるIE条件付きコメント(および一般的なコメント)でラップされた開始HTMLタグのフォーマットを台無しにします。Line > Reindentこのスニペットに組み込まれているjsfiddle.net/y8xXjを使用して、どのように失敗するかを確認してください。
-user110241

参考までに、Sublime Text 3でHTMLスニペットを試してみましたが、実際に動作します!
スティーブン

2
同じ問題。過去に無数のエディター、Coda、Sublime、Espresso、Chocolat、TextMateを使用しましたが、DreamweaverのApply Source Formattingのように完璧にテキストを適切にフォーマットできるものはいません。人々は単にTidyまたはDreamweaverのように機能しない他のプラグインを提案するだけです。誰かがこの問題を「Zooted」してくれてうれしいです。残念ながら、まだ解決策はありません。Sublime Text 3のZooted Noted as Tagでも、正しく動作しません(上記の例のように)。そして、ネイティブのReindent機能は非常に価値がありません。
cchiera

6

[すべて]-> [ 編集 ]メニュー-> [ ]-> [ Reindend ]を選択します。同じ用途にショートカットの組み合わせ設定できます。

{"キー":["ctrl + shift + r"]、 "コマンド": "再インデント"、 "引数":{"single_line":false}}


1
質問で述べたように、これは機能しませ。非常に最初の私が提供スニペットでそれを試してみてください:<セクション> <記事> <H1> </ H1> <P> </ P> </記事> </ section>の
user110241

私のために働く。構文がHTMLに設定されていますか?
マヌエルアルウェドシュミット

2
私にはうまくいきません。
デレク朕會功夫

ええ、それはかなり良い仕事をしますが、最終的にドロップし始めました<div>。私の場合はタグを開きます。
ルフィン

0

再インデント機能を機能させるには、「スペースを使用したインデント」オプションのチェックを外す必要があります。

表示>>インデント>>スペースを使用したインデント

このオプションのチェックを外すと、テキストを選択して再インデントできます。

編集>>行>>再インデント

これは、XMLと同様にHTML構文でも機能します。他ではテストしていません。


私は実際に、そのチェックされていないもので既に働いていました。あなたが言及したコマンドは、ST3のこのスニペットにはまったく何もしません<html><head></head><body><div><p>foobar<span>baz</span></p></div></body></html>
。– user110241
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.