与此同时,我规避了 vim 的缩进功能,而是尽可能地依赖特定的缩进器/重新格式化程序(顺便说一下,如果有人知道tex
/latex
重新格式化程序,请告诉我)。
结果,以下几行进入了我的.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
. tidy
似乎是一个怪物,它不仅可以漂亮地打印您的 html 文件,还可以验证和纠正它们。
为了应付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
并开始使用gg=G
需要较少击键的派生映射来缩进您的 html 文件。
请小心,因为tidy
任何其他重新格式化程序可能会弄乱您的代码。因此,您应该定期备份您的代码(可能使用git
或类似的东西)。尽管我自己从未经历过这种情况,perltidy
并且indent
互联网上有一些愤怒的用户抱怨此类事件的报道。