Sublime Text 2を使用してHTMLコードを再フォーマットするにはどうすればよいですか?


1313

再フォーマットしたいフォーマットの悪いHTMLコードがいくつかあります。Sublime Text 2のHTMLコードを自動的に再フォーマットして見栄えをよくし、読みやすくするコマンドはありますか?



1
また、Vintageモードを使用している場合は、通常モードでgg = Gを使用できます。
Wiktor Mociun 2013

3
このページ全体を読んで時間を無駄にすることも、github.com / akalongman / sublimetext-codeformatterを取得して作業に戻ることもできます。
shaneparsons

回答:


2080

これを行うのにプラグインは必要ありません。すべての行(Ctrl A)を選択し、メニューから[編集]→[行]→[インデント解除]を選択します。これは、ファイルが.htmlやなどのHTMLを含む拡張子で保存されている場合に機能します.php

これを頻繁に行う場合、このキーマッピングが役立つことがあります。

{ "keys": ["ctrl+shift+r"], "command": "reindent" , "args": { "single_line": false } }

ファイルが保存されない場合(例:スニペットを新しいウィンドウに貼り付けたばかりの場合)、インデントの言語を手動で設定できlanguage of choiceます。再表示オプションを選択する前に、[表示]→[構文]→ を選択します。


19
ちなみに、これは例えばRubyやJSのように、また、非HTMLソースコードのために働く
ピーター・

78
これは、コードが1行で開いている複数のタグを持たず、1行で閉じていない場合、またはその逆の場合に最適です。
Charlie Gorichanaz

31
パーフェクト!Macでは、cmdキーにスーパーが必要なので、{"keys":["super + shift + r"]、 "command": "reindent"、 "args":{"single_line":false}}
Geert Weening

168
行の再インデントは、任意のHTMLを再フォーマットするためには絶対に機能しません。改行なしの複数のhtmlタグがある場合などです。@annekeからのHtmlTidyの回答が優れています。私の知る限り、改行に関係なく、ソースhtmlを完全かつ適切に再フォーマットして、字下げされたソースに変換します。
jpw 2013

33
初心者の場合は、[設定]をクリックし、[キーバインディング-ユーザー]を選択して、角かっこの間にピーターのコードを貼り付け、ファイルを保存します。
sigmapi13 2013

375

SublimeでHTMLをフォーマットする方法は6つほどあります。私は最も人気のあるプラグインのそれぞれをテストしました(詳細については、私のブログで書いた記事を参照してください)。しかし、最も人気のあるオプションのいくつかの概要を以下に示します。

再インデントコマンド

長所:

  • Sublimeに同梱されるため、プラグインのインストールは不要

短所:

  • 余分な空白行を削除しません
  • 縮小されたHTML、複数の開いたタグがある行を処理できません
  • <script>ブロックを適切にフォーマットしない

鬼ごっこ

長所:

  • ST2 / ST3をサポート
  • 余分な空白行を削除します
  • バイナリ依存なし

短所:

  • PHPタグのチョーク
  • <script>ブロックを正しく処理しない

HTMLTidy

長所:

  • PHPタグを処理します
  • 書式を微調整するためのいくつかの設定

短所:

  • PHPが必要(Webサービスにフォールバック)
  • ST2のみ
  • 放棄された?

HTMLBeautify

長所:

  • ST2 / ST3をサポート
  • 単純でバイナレイ依存なし
  • OS X、Win、Linuxのサポート

短所:

  • インラインコメントで少しチョーク
  • 最小化/圧縮されたコードを展開します

HTML-CSS-JS Prettify

長所:

  • ST2 / ST3をサポート
  • HTML、CSS、JSを処理します
  • Sublimeのメニューとの優れた統合
  • 高度にカスタマイズ可能
  • プロジェクトごとの設定
  • 保存時にフォーマット

短所:

  • Node.jsが必要
  • 埋め込みPHPには不向き

どれが一番いいですか?

HTML-CSS-JS Prettifyが私の本の勝者です。たくさんのすばらしい機能、不満はほとんどありません。


12
Prettifyで2位。再インデントは私が持っていたhtmlでは機能せず、Tagを見つけることができず、HtmlTidyはそれを呼び出したときに何もしませんでした。
jcollum

2
試してみたところ、HTML-CSS-JS Prettifyは私のユースケースで理想的に機能しました(組み込みの再インデントパッケージや他のリフォーマッターパッケージよりもはるかに優れたhtmlのクリーンアップを処理しました)
Mark

2
他のすべてを試しましたが、(HTMLのスニペットで)機能したのはHTML-CSS-JS Prettifyだけでした。ありがとうございました!
zumek

1
また、STの組み込み機能を使用するだけで(たとえば、マークアップが編集された後)すべてのインデントを削除できることも言及したかった-ブロックを選択し、Ctrl + Jを押す。
zumek

1
これはHTML以外の拡張機能で機能しますか?私はphpや他のテンプレートを試しましたが、うまくいきませんでした。
Bsienn

179

私が見つけた唯一のパッケージはTagです。

パッケージコントロールを使用してインストールできます。https://sublime.wbond.net

パッケージコントロールをインストールした後。パッケージコントロール([ 設定] -> [ パッケージコントロール])に移動し、タイプinstallしてヒットしenterます。次に、タイプtagしてヒットしenterます。

タグをインストールした後、テキストを強調表示し、ショートカットCtrl+ Alt+ を押しますF


21
より良いプラグインはTidy HTMLです
MatthewFord

1
おかげで...パッケージについて今知った:D。ここでも崇高なテキストのためのいくつかのクールなものを見ました。arlando.net/blog/…–
mars-o

3
これは正直に言って、何百ものランダムな改行、誤ってネストされたタグを含む一部のHTMLコードで完全に機能した唯一のものです。基本的に、私が今まで見た中で最も厄介なHTMLページの1つをクリーンアップしました。
justinhartman 2013

1
@ mars-oに同意しません。このプラグインは素晴らしいです。Tidyはいくつかのことを非常にうまく行っており、非常に確立されていますが、このプラグインは他にもかなり多くの興味深いことを行います。投稿ありがとうございます。
zedd45 2014年

@JonnyLeedsそれは一種のことですが、必ずしも正しくはありません。特にXMLについては、Indent XMLまたはIndentX他のものを。
Joel Mellon、

49

私はこのプラグインをお勧めします:HTML / CSS / JS Prettify、それは本当に機能します。

インストール後、コードを選択してを押すだけCtrl+Shift+Hです。

できた!


3
そのプラグインを使用するには、Node.jsが必要です。通常のユーザーにはあまり快適ではありません。
nikoskip 2015

4
このプラグインの有用性と比較すると、Node.jsのインストールの問題を無視できます;)
Peter Zhu

packagecontrol.io/packages/HTML-CSS-JS%20Prettifyをインストールする手順はうまくいきました。ありがとう。
Sacky San、2016

41

一般的なヒントです。HTMLを自動整頓するために私がしたことは、パッケージHTML_Tidyをインストールしてから、次のキーバインドをデフォルト設定(私が使用しているもの)に追加することです。

{ "keys": ["enter"], "command": "html_tidy" },

これにより、すべての入力時にHTML Tidyが実行されます。これには欠点があるかもしれませんが、私はSublimeを使うのは初めてですが、私がやりたいことをしているようです:)


2
このプラグインが大きなファイルで少し集中的になる可能性があると思いますが、Enterキーを押すたびに実行されると遅くなりますか?
Rikki

2
ENTERキーバインドを約1日使用してから削除しました。それは遅すぎて、v2では画面の上部にカーソルを移動し続けました。
Ravi Ram

22

質問はHTMLに関するものですが、JavascriptコードをSublime Text 2用自動フォーマットする方法についても説明します

すべてのコードを選択して(ctrl+ A)、アプリ内機能を使用してreindent(Edit-> Line-> Reindent)するか、JsFormatフォーマットプラグインを使用Sublime Text 2して、 Sublime Textのデフォルトのタブ/インデント設定。

https://github.com/jdc0589/JsFormat

パッケージコントロール(-> )を使用してJsFormatを簡単にインストールできます。パッケージコントロールを開き、「install」、「hit」と入力します。次に、タイプしてを押すと、完了です。(パッケージコントローラーのインストールのステータスが、左下のバーに成功とエラーで表示されます)PreferencesPackage Controlenterjs formatenterSublime

次の行をキーバインディングに追加します(Preferences-> Key Bindings User

{ "keys": ["ctrl+alt+2"], "command": "js_format"}

私はctrl+ alt+ を使用し2ています。このショートカットキーは何にでも変更できます。これまでのところ、それJsFormatは試す価値のある良いプラグインです!

これが誰かを助けることを願っています。



13

私にとって、HTML Prettify解決策は非常に簡単でした。HTML Prettifyページに行きました。

  1. 必要としました Sublime Package Manager
  2. ここにパッケージマネージャをインストールするための指示に従ってください
  3. 入力cmd + shift + pしてメニューを表示します
  4. 入力した prettify
  5. 選んだHTML prettifyメニューの選択を

ブーム。できました。素晴らしく見える


このソリューションは、私が望んだとおりに機能し、PMが既にインストールされている場合は2秒を除くすべての時間がかかります。prettifyパッケージをインストールする必要があることを追加したいと思うかもしれません。
doogle

注:興味のある方は、この回答のプラグインでnode.jsをインストールする必要があります。
架空の名前

正しく機能しません。HTMLをインデント/改行するだけで、特定のレベルのインデントになり、残りはインデントされずに同じ行に残ります。
ジョナサン

11

単に行く

編集->タグ->ドキュメントのタグの自動フォーマット


6
Sublime Text 2 Version 2.0.1, Build 2217Macではそのメニューオプションが表示されません。それは標準機能ですか?
ostergaard 2013年

1
タグはパッケージマネージャーからインストールする必要があります。しかし、私はそれに一つ問題があります。の<b>somthing</b>後にコンマが続く場合、コンマは新しい行に置かれ、ブラウザビューで何かとコンマの間にスペースができます。
reitermarkus 2013

9

HTMLを再フォーマットする適切な作業を行うHTMLBeautifyというパッケージを作成しました。私はそれを1997年に見つけたPerlスクリプトに基づいて作成しました。私はそれを更新して、すべての新しい最新のタグに対応できるようにしました。:)

ぜひチェックして、感想を聞かせてください!

https://github.com/rareyman/HTMLBeautify


3
インストールしましたが、デモファイルでHTMLBeautifyを実行しても何も起こりません。メッセージはファイルが美化されることを表示しますが、ファイルの内容には何も起こりません。
サム

私の推測では、あなたはWindowsを使っています…?Windowsでは、スクリプトを使用できるようにSublimeText 2を再起動する必要があります。それを試して、何が起こるか教えてください。:)
ロス

私はそうしました。スクリプトは利用可能でしたが、ファイル内の何も変更しませんでした。
サム

奇妙な。他のすべてのプラグイン/パッケージが正常に動作すると想定していますか?テスト環境でこの問題を再現することはできないようです。そのため、何を伝えればよいかわかりません。:(
ロス

フォーマット以外はすべて期待どおりに機能します。ドイツ語版のWindowsを実行しているためでしょうか。
2013年

7

これはあなたが探しているものだと思います:

https://github.com/victorporof/Sublime-HTMLPrettify


私は指示に従いましたが、うまくいきませんでした。プラグインでエラーが発生します。「 '{'は、内部または外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されません。」
Ravi Ram

特定のパッケージではNodeをインストールする必要があると思います。これは追加の作業です... dandean.com/nodejs-npm-express-osx NPMを無視して、express
bgreater

@AllanこれはWindowsでの作業ですか。私のコンピューターにnode.jsがインストールされています。
Anirudha Gupta

7

私はまだコメントする権限がありませんので、これは上記の回答に対する@peterの回答に関連する単なる追加情報です。

ヘッダーのIE 条件付きコメントが完全にインライン化されていない場合、HTMLが期待どおりに配置されないことがわかりました。

<!--[if lt IE 7]>
<p class='chromeframe'>Your browser is <em>unsupported</em>. <a href="http://browsehappy.com/">Upgrade to a different browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">install Google Chrome Frame</a> to experience this site.</p>
<![endif]-->
<!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]--> 

7

素敵なオープンソースのCodeFormatterプラグインがあり、(再インデントとともに)すべてが1行である場合でもダーティコードを美化できます。


注:これにはローカルのPHPインストールが必要です。
2014

これが唯一の優れたプラグインであることがわかりました。ほとんどすべてのプラグインを試しました。
shaneparsons

これはHTML属性をフォーマットする設定があるようです。他のプラグインがそれをするのを見ませんか?または私はそれを逃していますか?
バジル2017

4

私は、HTMLを美しくするために、カスタムビルドシステムと共にtidyを使用しています。

Packages / User /ディレクトリにHTMLTidy.sublime-buildがあります:

{
  "cmd": ["tidy", "-config", "$packages/User/tidy_config.cfg", "$file"]
}

同じディレクトリにあるtidy_config.cfgファイル:

indent: auto
tab-size: 4
show-warnings: no
write-back: yes
quiet: yes
indent-cdata: yes
tidy-mark: no
wrap: 0

ビルドシステムを選択してctrl+ bまたはcmd+bをファイルコンテンツを再フォーマットします。これに関する小さな問題の1つは、ST2がファイルを自動的に再読み込みしないため、他のファイルに切り替えて(または他のアプリケーションに切り替えて)結果を確認する必要があることです。

MacではMacportsを使用してtidyをインストールしましたが、Windowsでは自分でダウンロードし、ビルドシステムでtidyが配置されている作業ディレクトリを指定する必要があります。

"working_dir": "c:\\HTMLTidy\\"

または、PATHに追加します。


4

ショートカットキーをF12簡単に設定できます!!!

{ "keys": ["f12"], "command": "reindent" , "args": { "single_line": false } }

詳細はこちら


6
価値のない答え。これは受け入れられた回答の複製です。
Mark Amery
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.