【问题标题】: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 粘贴特殊字符是行不通的