在Django/Jinja模板中使用{%tags%}和Emacs一起使用的更简单的方法是什么?

在Django/Jinja模板中使用{%tags%}和Emacs一起使用的更简单的方法是什么?,emacs,django-templates,jinja2,Emacs,Django Templates,Jinja2,我在Emacs中编写了很多Django/Jinja模板。我已经在用了,它在缩进方面做得很好 我在寻找这样的东西: 当我键入一个{%时,插入结束符%},或者让我按一个键插入一个{%▊ %}(其中▊是光标) 使创建{%if%}/{%else%}/{%endif%}块更加容易 对于任何{%foo%}标记,可能会自动添加{%endfoo%} 建议?安装代码片段并将其添加到nxml模式,如 #name : {% %} # -- {% $0 %} #name : {% for %} # -- {% for

我在Emacs中编写了很多Django/Jinja模板。我已经在用了,它在缩进方面做得很好

我在寻找这样的东西:

  • 当我键入一个
    {%
    时,插入结束符
    %}
    ,或者让我按一个键插入一个
    {%▊ %}(其中
    是光标)
  • 使创建
    {%if%}
    /
    {%else%}
    /
    {%endif%}
    块更加容易
  • 对于任何
    {%foo%}
    标记,可能会自动添加
    {%endfoo%}
  • 建议?

    安装代码片段并将其添加到nxml模式,如

    #name : {% %}
    # --
    {% $0 %}
    
    #name : {% for %}
    # --
    {% for $1 in $2 %}
       $0
    {% endfor %}
    
    
    #name : {% if %}
    # --
    {% if $0 %}
    {% else %}
    {% endif %}
    
    将它们分别保存在文件%、%和%if中

    然后您只需在选项卡后面键入%,它将在%符号之间插入带有光标的{%%}。类似的类型%if用于
    if
    construct,而%用于循环。

    安装代码片段并将其添加到nxml模式,如

    #name : {% %}
    # --
    {% $0 %}
    
    #name : {% for %}
    # --
    {% for $1 in $2 %}
       $0
    {% endfor %}
    
    
    #name : {% if %}
    # --
    {% if $0 %}
    {% else %}
    {% endif %}
    
    将它们分别保存在文件%、%和%if中


    然后你只需在一个标签后面键入%,它将在%符号之间插入带有光标的{%%}。类似的类型%if用于
    if
    construct,而%用于循环。

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

    Web模式支持自动配对(例如,{%…%})。打开任何html模板时,可以设置要使用的引擎(M-x Web模式集引擎),或者Web模式将为您检测引擎


    现在,你不必依赖yasnippet在2018年完成这项工作,很多事情已经改变了。我相信很多Emacs用户现在使用的是nXhtml,而不是不再开发的nXhtml

    Web模式支持自动配对(例如,{%…%})。打开任何html模板时,可以设置要使用的引擎(M-x Web模式集引擎),或者Web模式将为您检测引擎

    现在,你不必依靠yasnippet来做这件事