web-dev-qa-db-ja.com

すべてのHTMLタグをインデントするためにvimを取得するにはどうすればよいですか?

Debian 7でvimを使用してHTMLドキュメントを編集していました。入力を開始しました:<HTML>Return

最初に戻った後、カーソルは1レベルインデントされたので、<head>と残りのドキュメントを入力すると、次のように表示されます。

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Test page</title>
    </head>
    <body>
        <div>
            <p>This is a paragraph.</p>
        </div>
    </body>
</html>

各行のタグの後には、 Return と上のプレスはありません Tab または Space キー、そしてvimは私が期待したとおりにフォーマットしました。また、終了タグの最初の</を入力すると、vimは対応する開始タグのレベルに一致するようにその行のインデントを解除します。

次に、Ubuntu 13.10のvimに同じドキュメントを入力すると、同じ方法で同じドキュメントを入力しているため、次の結果が得られます。

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Test page</title>
</head>
<body>
<div>
    <p>This is a paragraph.</p>
</div>
</body>
</html>

インデントは<p>タグまで開始されないことに注意してください。その後の兄弟要素と子要素のいずれかを想定しています。 HTMLインデントスタイルの以降のバージョンでは、読みやすくするために、html、head、bodyなどのタグをインデントしないことを選択しているようです(?)。

Vimがすべてのタグをインデントしないという事実は気に入らない。 これを変更するにはどうすればよいですか?

さまざまなバージョンのインデントファイルを調べてみましたが、そこで何ができるのかわかりませんでした。ペーストビン:

次のバージョンのvimを使用しています。

  • Debian 7:「Vi IMproved 7.3(2010年8月15日、2013年2月10日編集02:27:59)」
  • Ubuntu 13.10:「Vi IMproved 7.4(2013年8月10日、2013年8月12日コンパイル00:28:05)」
3
Victor

完全なvimがインストールされていることを確認してください。

Sudo apt-get install vim

次に、~/.vimrcという名前のファイルを次の内容で作成します。

filetype plugin indent on

その後、動作するはずです。

UPDATE(- ソース アップデートの)

7.4バージョンでは、インデントファイルが変更されました。これが問題の原因です。新しいインデントはすべてのhtmlタグをインデントするわけではありませんが、以下を使用してインデントするタグを指定できます。

:let g:html_indent_inctags = "html,body,head,tbody"

vimで、または:なしで、いつものように~/.vimrcで。 (もちろん、インデントしたいタグをリストに入れます。)

または、新しいバージョンの代わりに古いバージョンのインデントファイルを交換することもできます。 12.04では、古いインデントファイルは/usr/share/vim/vim73/indent/html.vimにあるため、7.4バージョンの場合、ファイルは/usr/share/vim/vim74/indent/html.vimにあります。または、ユーザーに対してのみオーバーライドし、更新から保護するために、~/.vim/indent/html.vimに入れます

9
falconer