在 Emacs 中使用 Django/Jinja 模板中的 {% tag %} 是否更简单?

发布于 2024-12-05 05:28:34 字数 457 浏览 2 评论 0原文

我正在 Emacs 中编写大量 Django/Jinja 模板。我已经在使用 nXhtml,它在缩进方面做得很好。

我正在寻找这样的东西:

  1. 当我键入 {% 时插入关闭 %},或者让我按一个键插入 {% ▊ %}(其中 是光标)
  2. 更容易创建 {% if %}/{% else %}/< code>{% endif %} 块
  3. 也许会为任何 {% foo %} 标签自动添加 {% endfoo %}

建议?

I'm writing a lot of Django/Jinja templates in Emacs. I'm already using nXhtml, which does an okay job of indenting.

I'm looking for something that:

  1. Inserts closing %} when I type a {%, or lets me hit a key to insert a {% ▊ %} (where is the cursor)
  2. Makes it easier to create {% if %}/{% else %}/{% endif %} blocks
  3. Maybe auto-adds {% endfoo %} for any {% foo %} tags

Suggestions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

寒尘 2024-12-12 05:28:34

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

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

现在,您不必依赖 yasnippet 来执行此操作

By 2018, many things had changed. I believe many Emacs user use web-mode now instead of nXhtml which is no longer being developed since 2012.

Web-mode support auto pairing (e.g. , {% … %}). When you open any html template, you can set which engine you want to use (M-x web-mode-set-engine), or web-mode will detect the engine for you.

Now, you don't have to rely on yasnippet to do this

吐个泡泡 2024-12-12 05:28:34

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

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

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


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

将它们保存在文件中分别为 %%for%if

然后,您只需在制表符后面键入 %,它就会在百分号之间插入带有光标的 {% %}。类似的类型 %if 用于 if 构造,%for 用于循环。

Install yasnippet and add your snippets to the nxml-mode, like

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

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


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

Save them in files % , %for and %if respectively.

Then you just type % following by a tab and it will insert {% %} with a cursor between percent symbols. Similar type %if for if construct and %for for a loop.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文