【问题标题】:How to find Django template tags and replace them with block tags in Vim?如何在 Vim 中找到 Django 模板标签并用块标签替换它们?
【发布时间】:2020-09-21 02:52:05
【问题描述】:

我需要更改几个 Django 模板实例 像这样:

{% block content %}{{ mycontents }}{% endblock content %}

到这里:

{% templatetag openblock %} block content {% templatetag closeblock %}{% templatetag openvariable %} mycontents {% templatetag closevariable %}{% templatetag openblock %} endblock content {% templatetag closeblock %}

如何构造一个查找和替换命令来执行此操作?我通常将 Vim 用于此类事情,但我对其他替代方案持开放态度。

【问题讨论】:

    标签: parsing vim django-templates replace


    【解决方案1】:

    可以使用以下两个替换命令进行转换 分别是块和变量内容:

    :%s/{%\(.\{-}\)%}/{% openblock %}\1{% closeblock %}/g
    :%s/{{\(.\{-}\)}}/{% openvariable %}\1{% closevariable %}/g
    

    【讨论】:

    • 更新模板标签占位符,你会得到一个完整的答案:-)
    【解决方案2】:

    我个人会用宏来做。这只有在“mycontents”都在一行时才有效

    保存宏:

    :let @q='/{% block wcwtemplatetagw"aciwopenblockf}a block a {% templatetag closeblock %}{% templatetag openvariable %}l2dlf}C{% templatetag closevariable %}{% templatetag openblock %} endblock a {% templatetag closeblock %}'

    @q 使用

    edit ooookkkk 我应该猜到从 vim 粘贴特殊字符是行不通的

    【讨论】:

      猜你喜欢
      • 2012-05-16
      • 2011-02-09
      • 2021-08-31
      • 2018-03-01
      • 2014-03-20
      • 2021-10-16
      • 2013-12-10
      • 2011-12-22
      • 2011-10-05
      相关资源
      最近更新 更多