用vim替换每个字符串出现的开头和结尾

时间:2015-06-09 12:57:26

标签: vim

我有超过一百个字符串?dep=后跟两个数字。它就像?dep=01?dep=02?dep=03等。 我需要更改字符串但同时保留数字,例如

?dep=01

需要成为

{{ path('annonce-index', {departement: 01}) }}

如何使用vim中的substitute命令执行此操作?

1 个答案:

答案 0 :(得分:6)

这可以通过简单的捕获组完成:匹配被删除的部分(?dep=)和将保留的部分(\d\d),但是将后者包含在\(...\)中以捕获它。然后,在替换中,请通过\1

参考第一次捕获
:%s/?dep=\(\d\d\)/{{ path('annonce-index', {departement: \1}) }}/g

:%将此应用于整个缓冲区,/g标志将其应用于单行中的多个匹配项。请阅读:help /\(:help :substitute了解详情。