2

我用gg=G在 vim 中重新缩进我的文件。我有 jinja2 模板,其中包含 jinja2 表达式和 html。filetype设置jinja为。当我使用gg=G时,html get 正确地重新缩进,但不是 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 %}

我怎样才能改变这种行为?

亲切的问候!

4

1 回答 1

2

Jinja 插件的缩进脚本只是委托给默认文件类型的缩进方法html,见这里

不幸的是,虽然indent/html.vim可以使用自定义 HTML 标签进行扩展,但标签语法<...>是硬编码的,因此您不能只配置{% ... %}Jinja 的语法。如果你没有找到 Jinja 的特殊缩进插件,你必须自己写一个/扩展indent/html.vim一个。

于 2013-04-27T19:32:47.793 回答