我有超过一百个字符串?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命令执行此操作?
这可以通过一个简单的捕获组完成:匹配被删除的部分(?dep=)和将保留的部分(\d\d),但将后者包含在内\(...\)以捕获它.然后,在替换中,请参考第一个捕获\1:
:%s/?dep=\(\d\d\)/{{ path('annonce-index', {departement: \1}) }}/g
Run Code Online (Sandbox Code Playgroud)
在:%应用此到整个缓冲器,所述/g标志在单行应用于这多个匹配.阅读:help /\(并:help :substitute了解更多信息.