场景
我想把
for a,b in zip(
c,
d,
e
):
f
g
替换为
def func(
para = e
)
只需要再vim中执行
s/\vfor a.*zip\(\_.{-}d,\n\s*(\_.{-})\):\_.{-}g/def func(\r\tpara=\1)/
要点
\_.
代表包含换行的任何字符\v
模式下, 所有的符号都优先具有正则功能, 能大幅度减少\
的出现, 但注意\_
的转移符号不能省略{-}
代表非贪婪模式
用途
在重构的时候, 需要将多个具有相同版面的代码封装为函数, 如果不这样做就要手动一个个改了。