Vim - 在可视模式下复制/粘贴时保留上次复制的文本

Fra*_*rth 3 vim

我想更改在可视模式下粘贴文本的默认(和愚蠢)行为.这是当前的步骤和行为:

  1. 复制任意文本(让我们称之为"文本A")
  2. 在可视模式中选择任何其他文本(让我们称之为"文本B")
  3. 选择后,按"p"将"文本B"替换为"文本A"
  4. 在其他地方再次按"p".结果是"文本B"被粘贴.

我希望第4步产生"文字A".

换句话说,我希望以可视模式粘贴以保留我复制的文本,这样我就可以继续粘贴它,而不是用被替换的任何内容覆盖它.

Ama*_*dan 6

xnoremap <expr> P '"_d"'.v:register.'P'
Run Code Online (Sandbox Code Playgroud)

(不是我的代码,之前发现它).

我不会说默认是愚蠢的,我以前用它效果很好.P在这里使用效果很好,因为在视觉pP视觉之间没有区别,所以很高兴让其中一个做非默认的事情,同时仍然允许默认.

编辑:如果你将一个明智的选择粘贴到一个字符方式的选择中,它并没有那么好用.不会打扰我太多,因为这不是一个非常常见的情况,但仍然是一个警告,以防万一.