假定的寄存器y填充了一些文本.我可以用缓冲区y替换匹配某些模式的缓冲区中的每一行吗?
我认为它是这样的:
:g/[pattern]/"yp
Run Code Online (Sandbox Code Playgroud)
但这绝对不起作用(而且我知道它不会反过来尝试).有没有办法在一次失败中做到这一点?
一种方法是使用 :s\=
:%s/.*pattern.*/\=@y
Run Code Online (Sandbox Code Playgroud)
有:global,你需要像(未经测试的)
:g/pattern/exe "normal! S\<c-r>y\<esc>"
Run Code Online (Sandbox Code Playgroud)
可能是以下可能工作(我不确定,因为我p在视觉模式中改变了行为 - >未经测试)
:g/pattern/normal! V"yp
Run Code Online (Sandbox Code Playgroud)
或以下不会更改默认寄存器:
:g/pattern/call setline('.', @y)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
48 次 |
| 最近记录: |