使用Emacs在Django / Jinja模板中使用{%tags%}的更简单方法?

时间:2011-09-15 18:59:20

标签: emacs django-templates jinja2

我在Emacs中编写了很多Django / Jinja模板。我已经在使用nXhtml,这可以很好地缩进。

我正在寻找的东西:

  1. 在我输入%}时插入结束{%,或者让我点击一个键以插入{% ▊ %}(其中是光标)
  2. 更轻松地创建{% if %} / {% else %} / {% endif %}
  3. 可能会为任何{% endfoo %}代码
  4. 自动添加{% foo %}

    建议?

2 个答案:

答案 0 :(得分:2)

安装yasnippet并将您的代码段添加到nxml模式,例如

#name : {% %}
# --
{% $0 %}

#name : {% for %}
# --
{% for $1 in $2 %}
   $0
{% endfor %}


#name : {% if %}
# --
{% if $0 %}
{% else %}
{% endif %}

将它们分别保存在文件%代表%if

然后,您只需在选项卡中键入%follow,它将在百分号之间插入带有光标的{%%}。类似的类型%if用于if构造,%用于循环。

答案 1 :(得分:1)

到2018年,许多事情发生了变化。我相信许多Emacs用户现在使用web-mode而不是不再开发since 2012的nXhtml。

网络模式支持自动配对(例如{%…%})。当您打开任何html模板时,可以设置要使用的引擎(M-x web-mode-set-engine),否则Web模式将为您检测引擎。

现在,您不必依靠yasnippet即可