Django模板标签的查找和替换

时间:2012-06-19 16:34:02

标签: parsing vim django-templates replace

我需要更改Django模板的几个实例,如下所示:

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

对此:

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

如何构建查找和替换来执行此操作?我通常使用Vim来做这种事情,但我愿意接受其他选择。

2 个答案:

答案 0 :(得分:1)

可以使用以下两个替换命令来转换块和 可变内容分别。

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

答案 1 :(得分:0)

我个人会用宏来做。只有“mycontents”全部在一行

时才会有效

使用以下方法保存宏:

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

@q使用

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