彼の巨大な html ファイルのインデントを修正するにはどうすればいいですか?
コードファイルのインデントを修正するために使用する通常の"gg=G
コマンドを試しました。ただし、HTML ファイルでは正しく動作しないようです。すべてのフォーマットを削除しただけです。
を設定:filetype = xml
して、これをだまして XML ファイルであると思わせることが役立つかどうかを確認しましたが、それでもうまくいきませんでした。
彼の巨大な html ファイルのインデントを修正するにはどうすればいいですか?
コードファイルのインデントを修正するために使用する通常の"gg=G
コマンドを試しました。ただし、HTML ファイルでは正しく動作しないようです。すべてのフォーマットを削除しただけです。
を設定:filetype = xml
して、これをだまして XML ファイルであると思わせることが役立つかどうかを確認しましたが、それでもうまくいきませんでした。
すべてを整える必要があることがいくつかあります。それらすべてを1つの場所に要約するだけです。
次のオプションを設定します。
:filetype indent on
:set filetype=html # abbrev - :set ft=html
:set smartindent # abbrev - :set si
次に、カーソルをファイルの先頭に移動し、最後にインデントします。gg
=G
または、インデントする目的のテキストを選択し、=を押してインデントします。
filetype indent on
my 内で、.vimrc
Vim は HTML ファイルを非常にうまくインデントします。
a が 2 の簡単な例shiftwidth
:
<html>
<body>
<p>
text
</p>
</body>
</html>
スマート インデントを使用する主な問題は、XML (または HTML) が 1 行に収まっている場合、curl 要求から戻ってくる可能性があるためgg=G
、うまくいかないことです。代わりに、VI から直接呼び出された tidy を使用して適切なインデントを経験しました。
:!tidy -mi -xml -wrap 0 %
これは基本的に、行をラップせずに tidy を呼び出して XML ファイルをクリーンアップし、デフォルトの 68 文字幅の行に収まるようにすることを VI に指示します。29MB の大きな XML ファイルを処理したところ、5 ~ 6 秒かかりました。したがって、HTMLファイルの場合、コマンドは次のようになるはずです。
:!tidy -mi -html -wrap 0 %
コメントで述べたように、tidy
多くのベース Linux / MacOS システムで見つけることができる基本的なツールです。あなたがそれを望んでいたが、そうではなかった場合のプロジェクトのページは次のとおりです: HTML Tidy。
上で tylerl が説明しているように、次のように設定します。
:filetype indent on
:set filetype=html
:set smartindent
ただし、vim 7.4 では、HTML タグhtml
、head
、body
、およびその他の一部がデフォルトでインデントされていないことに注意してください。HTML ファイル内のほぼすべてのコンテンツがこれらのタグに該当するため、これは理にかなっています。本当にしたい場合は、これらのタグを次のようにインデントすることができます:
:let g:html_indent_inctags = "html,body,head,tbody"
詳細については、「コンパイル済みの Vim 7.4 で HTML インデントが機能しない、何かアイデアはありますか?」と「代替の html インデント スクリプト」を参照してください。
これは、「醜い」HTMLを適切な間隔で開くのにうまく機能する私のソリューションです。
vim fileIn.html -c "set sw=2 | %s/>/>\r/ | execute 'normal gg=G' | set nohlsearch | g/^\\s*\$/d"
sw
コマンドは、デフォルトが 4 であり、HTML には高すぎるためです。>
)。=
.>
(set hlsearch
vimrcにあるため)。| wq! fileOut.html
Vim をまったく起動したくない場合は、最後に追加することもできますが、ファイルをクリーンアップするだけです。
私はこのスクリプトを使用します: https://github.com/maksimr/vim-jsbeautify
上記のリンクには、すべての情報があります。
:call HtmlBeautify()
美しく仕事をします!
Vim サイトで HTML インデント スクリプトを使用してみましたか?
これは、インデントと、編集中に必ずしも気にする必要のないすべての HTML プリティプリントを実現する重量級のソリューションです。
まず、Tidyをダウンロードします。必ずバイナリをパスに追加して、任意の場所から呼び出すことができるようにしてください。
次に、好みの HTML フレーバーを記述した構成ファイルを作成します。ドキュメンテーションは Tidy には適していませんが、ここに概要とすべてのオプションのリストがあります。これが私の設定ファイルです:
bare: yes
break-before-br: no
clean: yes
drop-proprietary-attributes: yes
fix-uri: yes
indent-spaces: 4
indent: yes
logical-emphasis: yes
markup: yes
output-xhtml: yes
quiet: yes
quote-marks: yes
replace-color: yes
tab-size: 4
uppercase-tags: no
vertical-space: yes
word-2000: yes
wrap: 0
これをフォルダー (vimfiles の下)に保存tidyrc_html.txt
します。ftplugin
もう 1 つのファイル: 次の行を に追加 (または作成)html.vim
しftplugin
ます。
map <leader>tidy :%! tidy -config ~/vimfiles/ftplugin/tidyrc_html.txt <CR>
使用するには、HTML ファイルを開いて、/tidy
. (それ/
が<leader>
鍵です。)
ほら!決して簡単な解決策ではありませんが、これで、巨大でめちゃくちゃな HTML ファイルを編集するための準備が少し整いました。
プラグインvim-autoformatをインストールすると、 tidyとhtml-beautify の両方を自動的に統合できます。その後、インストールされているフォーマッタを 1 回のキーストロークで実行できます。