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を使用しています。
完全な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
に入れます