0

以下にこの構成を示します。最後の行のコメントを外すと、正しいインデントが得られません。インデントすると、行が最初の列に配置されます。

syntax on

autocmd FileType html setlocal shiftwidth=2 tabstop=2

"au BufRead,BufNewFile *.html set filetype=htmljinja

私のhtmlにはtwigコードがあるため、htmljinjaファイルタイプが必要です(twigの構文はhtmljinjaのようなものです)

私はvim 7.3.547を持っています

4

1 に答える 1

0

その間、私はvimのインデント機能を回避し、できる限り特定のインデンター/リフォーマッターに依存しています(ちなみに、誰かがtex/latexリフォーマッターを知っている場合はお知らせください)。

その結果、次の行が my に入りました.vimrc

au FileType c,cpp let &l:equalprg="indent -br -l62 -nce -blf -bbb -i4 -nbfde -nbfda -bad -bap -cli4 -nut"
au FileType perl let &l:equalprg="perltidy"
noremap <leader>i mzgg=G`z

このアプローチの欠点は、書き込み中に自動インデントを楽しむことができないことです。それにもかかわらず、私はそれに非常に速く慣れ、インデントの問題に対する非常に堅実で適切な解決策だと考えています. さらに、インデントされたコードは見栄えがよく、これらの派手な IDE がそれに追いついているとは思えません。

さて、これはあなたの問題と何の関係がありますか?

私のアプローチに従って、html-reformatter を検索し、見つけましtidyた。tidyHTMLファイルをきれいに印刷できるだけでなく、それらを検証して修正することもできるモンスターのようです。

これに対処するにtidyは、インデント用の構成ファイルを作成する必要があります。次のものは私のために働きます:

~/.tidyrc_indent:

indent: auto
indent-spaces: 3
show-warnings: no
show-errors: 0
quiet: yes
indent-cdata: yes
output-html: yes
wrap: 80

tidyただし、オプションは無限にあるように見えるため、必ず のマニュアル ページを読んでください。

これで追加できます

au FileType htmljinja let &equalprg="tidy -config ~/.tidyrc"

あなた.vimrcのhtmlファイルをインデントするgg=Gか、キーストロークが少なくて済む派生マッピングを開始します。

tidy他のリフォーマッタがコードを台無しにする可能性があるので注意してください。したがって、コードを定期的にバックアップする必要があります (gitまたは同様の方法で)。私は自分でこれを経験したことはありませんが、そのような出来事について不平を言う怒っているユーザーのインターネット上での報告がいくつかありますperltidy.indent

于 2013-08-01T20:58:00.837 に答える