用vim写django模版中缩进问题

liuerfire
  • 19

用vim些django模版时,比如说:

<li>
    {% if sth %}
        <p>something</p>
    {% endif %}
</li>

我要求的缩进是上面的样子,但是在vim里会强制自动把"<p>"这一行向前缩进,变成了:

<li>
   {% if sth %}
   <p>something</p>
   {% endif %}
</lil>

必须将"<p>"这行输完了,手动改缩进。。

我理解的是,因为这是html文件,所以vim就把它当作普通html缩进格式处理了,而忽略了django中if标签。
所以该怎么处理,能够让vim把"{% %}"也当作html中的标签处理呢?

回复
阅读 5.8k
2 个回答
✓ 已被采纳

我可不可以认为你代码中的 {% if * %} 和 <li> 是一个等级的?或者下面这样的写法更符合要求,不会破坏 HTML 的缩进结构。

<li>
{% if sth %}
    <p>something</p>
{% endif %}
</li>

在VS2010中的自动缩进为第一种,我倒认为VIM的处理是正确的。
因为相对ul来说,li缩进一个tab才是良好的缩进。

宣传栏