Vim-用寄存器替换与模式匹配的每一行

Vim-用寄存器替换与模式匹配的每一行,vim,neovim,Vim,Neovim,假设寄存器y中填充了一些文本。我可以用寄存器y替换缓冲区中匹配某个模式的每一行吗 我会认为它是这样的: :g/[pattern]/"yp 但这肯定不行(我知道不行,但还是试过了)。有没有一种方法可以在一次失败的情况下做到这一点?一种方法是使用 使用:global,您将需要类似(未测试)的内容 或以下不会更改默认寄存器的选项: :g/pattern/call setline('.', @y) :g/pattern/exe "normal! S\<c-r>y\<esc>

假设寄存器y中填充了一些文本。我可以用寄存器y替换缓冲区中匹配某个模式的每一行吗

我会认为它是这样的:

:g/[pattern]/"yp

但这肯定不行(我知道不行,但还是试过了)。有没有一种方法可以在一次失败的情况下做到这一点?

一种方法是使用

使用
:global
,您将需要类似(未测试)的内容

或以下不会更改默认寄存器的选项:

 :g/pattern/call setline('.', @y)
:g/pattern/exe "normal! S\<c-r>y\<esc>"
 :g/pattern/normal! V"yp
 :g/pattern/call setline('.', @y)