我在下面有这个配置。当我取消注释最后一行时,我没有得到正确的缩进:当缩进时,这些行被放在第一列中。
syntax on
autocmd FileType html setlocal shiftwidth=2 tabstop=2
"au BufRead,BufNewFile *.html set filetype=htmljinja
我需要htmljinja文件类型,因为我的html有twig代码(twig的语法类似于htmljinja)
我有vim 7.3.547
答案 0 :(得分:0)
与此同时,我绕过了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
,但有一些关于愤怒用户的互联网报道抱怨此类事件。