我使用 gg=G
在 vim 中重新缩进我的文件。我有 jinja2 模板,其中包含 jinja2 表达式和 html。 filetype
设置为 jinja
。当我使用 gg=G 时,html 会正确重新缩进,但 jinja 表达式不会。
实际:
{% for elem in list %}
{% if elem.foo %}
<div>
<p>foo</p>
</div>
{% else %}
<div>
<p>bar</p>
</div>
{% endif %}
{% endfor %}
预期:
{% for elem in list %}
{% if elem.foo %}
<div>
<p>foo</p>
</div>
{% else %}
<div>
<p>bar</p>
</div>
{% endif %}
{% endfor %}
如何改变这种行为?
亲切的问候!
最佳答案
Jinja 插件的缩进脚本只是委托(delegate)给默认 html
的缩进方法。文件类型,请参阅here .
不幸的是,尽管indent/html.vim
可以使用自定义 HTML 标签进行扩展,标签语法 <...>
是硬编码的,因此您不能只配置 {% ... %}
Jinja 的语法。如果你没有找到 Jinja 的特殊缩进插件,你必须编写一个/扩展 indent/html.vim
一个你自己。
关于vim gg=G html 和 jinja2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16255109/