尝试使用htmljinja文件类型设置.html文件并获得正确的缩进

时间:2013-08-01 20:01:23

标签: vim

我在下面有这个配置。当我取消注释最后一行时,我没有得到正确的缩进:当缩进时,这些行被放在第一列中。

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

1 个答案:

答案 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并找到了tidytidy似乎是一个怪物,不仅可以打印你的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或类似的代码)。虽然我自己从来没有经历perltidyindent,但有一些关于愤怒用户的互联网报道抱怨此类事件。