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

Kor*_*san 2 vim

我有超过一百个字符串?dep=后跟两个数字.因此,它是这样?dep=01,?dep=02,?dep=03等我需要改变的字符串,但保留号码在同一时间,因此,例如

?dep=01
Run Code Online (Sandbox Code Playgroud)

需要成为

{{ path('annonce-index', {departement: 01}) }}
Run Code Online (Sandbox Code Playgroud)

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

Ing*_*kat 6

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

:%s/?dep=\(\d\d\)/{{ path('annonce-index', {departement: \1}) }}/g
Run Code Online (Sandbox Code Playgroud)

:%应用此到整个缓冲器,所述/g标志在单行应用于这多个匹配.阅读:help /\(:help :substitute了解更多信息.