【问题标题】:Change vim indenting format更改 vim 缩进格式
【发布时间】:2011-12-01 20:06:01
【问题描述】:

我想补充一下 html 在 vi​​m 中的缩进方式。我正在做 django 开发,我想在使用 django 模板标签时缩进。目前,使用文件类型缩进,它不会在模板标签后缩进。所以目前我的代码如下所示:

{% do_something %}
<div>
  <p>Hello</p>
</div>
{% end %}

我希望它能够将 {% %} 识别为标签并像这样缩进:

{% do_something %}
  <div>
    <p>Hello</p>
  </div>
{% end %}

是否有用于此的文件类型插件,或者我可以将 {% %} 添加到应该缩进的内容列表中?

【问题讨论】:

    标签: django vim coding-style


    【解决方案1】:

    当您的 html 文件有 filetype indent on 时,它将使用文件 html.vim 中的 ../vim/vim73/indent 子目录中的缩进规则。

    我敢肯定,您想用作下一行信号缩进的大括号在 html.vim 中没有被处理,因为它们不是 html 的一部分。您可以更改 html.vim 中的规则以按照您想要的方式完成。

    请参阅:h indent-expr 了解一些信息,您还需要查看 /indent 目录中的其他文件以了解其工作原理。

    你可以在 vim 网站上找到一个替代的 html.vim,它可能比 Vim 附带的 html.vim 更好: http://www.vim.org/scripts/script.php?script_id=2075

    【讨论】:

    • 这两个 html 插件都需要特定的标签名称来确定缩进。由于 django 标签可能是无限且不可预测的,因为您可以编写自己的标签,所以我不确定如何利用这些插件来做到这一点......最重要的是,任何有主体的标签总是有一个 {% endwhatever %} 结束标记。我希望这会是一个快速的解决方案,但看起来这需要付出很多努力,因为我对这一切都不是很熟悉......不过感谢您引导我朝着正确的方向前进!
    【解决方案2】:

    django.vim 项目有一个待定的pull request,以包含来自 Steve Losh 的替代 django-custom vim 实现。在大多数情况下,这比默认的要好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-26
      • 2010-09-14
      相关资源
      最近更新 更多