粘贴选定文本时,vim如何保留寄存器的内容?

Did*_*set 28 vim copy-paste

我有一行文字,我已经猛拉了yy.现在我想用这个文本替换其他几个地方的行.麻烦的是,当我选择V要替换的行并粘贴时p,所选的文本会被自动拉出!这就是我不想要的.

更改寄存器不起作用,因为粘贴和抽取都是使用新选择的寄存器完成的.

粘贴选定文本时保留寄存器内容的命令是什么?

pb2*_*b2q 26

您的原始选择应保留在注册状态0.因此,您可以浏览文件并使用以下方法将您的拉线粘贴到其他线条上:V"0p

  • 另外,使用`:reg`查看当前寄存器内容.[这个](http://blog.dreasgrech.com/2010/06/vims-black-hole-register.html)对寄存器有很好的解释,包括黑洞寄存器和_kill buffer_寄存器0-9 .最后:`:help register`,natch. (5认同)
  • 这是更好的答案。当已经有一个专门用来保存被拉取的文本的寄存器时,不需要将删除的内容发送到黑洞寄存器 (2认同)

rom*_*inl 24

每次你p超过某些东西它进入默认寄存器.

要解决此功能,您必须使用"_"黑洞注册" p.这是我在我的自定义映射~/.vimrc:

vnoremap <leader>p "_dP
Run Code Online (Sandbox Code Playgroud)

它删除所选内容并将其放入黑洞寄存器中(这意味着所选文本将永久消失)并将默认寄存器的内容放在先前所选文本的位置,同时保留默认寄存器.

当我需要用另一个looooooong url替换一些地方的loooooooong url并且制作一个s//太麻烦的时候我经常使用它.