假设注册y填充了一些文本。我可以用缓冲区y替换匹配某个模式的缓冲区中的每一行吗?
我认为它类似于:
:g/[pattern]/"yp
但这绝对不起作用(而且我知道不管怎样都不会尝试)。有没有办法在一次失败中做到这一点?
答案 0 :(得分:5)
一种方法是使用:s\=
:%s/.*pattern.*/\=@y
使用:global
,您需要(未经测试的)
:g/pattern/exe "normal! S\<c-r>y\<esc>"
可能以下内容可行(我不确定,因为我在可视模式下更改了p
行为 - &gt;未经测试)
:g/pattern/normal! V"yp
或以下不会更改默认寄存器:
:g/pattern/call setline('.', @y)