vim中的变量搜索和替换

dax*_*dax 1 vim

我有一个项目列表,我想添加方法调用.一个例子是最简单的.这就是我现在拥有的:

 assists: 12,
 level: 14,
 deaths: 5,
 ...
Run Code Online (Sandbox Code Playgroud)

我想将该列表更改为如下所示:

 assists: build_average(:assists),
 level: build_average(:level),
 deaths: build_average(:deaths),
 ...
Run Code Online (Sandbox Code Playgroud)

是否可以将该方法调用添加到每行的末尾,并将键的名称作为具有整齐Vim表达式的参数?

Sve*_*cke 5

更多正则表达式:

:%s/\(\w\+\):.\+/\1: build_average(:\1),/
Run Code Online (Sandbox Code Playgroud)

请注意,这适用于文件中的所有行.要仅替换区域,请选择区域(使用V),然后使用:s(导致:<,>s/...).

在VIM中使用更复杂的正则表达式可能很棘手,因为元字符与"普通"正则表达式语法不同(例如,您需要编写\+代替+,但可以在.不转义的情况下使用).我发现本指南非常方便参考正则表达式的特殊VIM语法:http://vimregex.com/#pattern