Vim:仅对yank命令使用+作为默认寄存器

she*_*run 9 vim clipboard

我想为yank命令使用+ register(系统剪贴板)(也就是说,不要覆盖这个寄存器dd或其他命令).

:set clipboard+=unnamed
Run Code Online (Sandbox Code Playgroud)

不起作用,因为它引入了dd上述的覆盖.

Ing*_*kat 7

除非明确给出另一个寄存器,否则您可以覆盖默认的yank命令,使它们默认为系统剪贴板:

:nnoremap <expr> y (v:register ==# '"' ? '"+' : '') . 'y'
:nnoremap <expr> yy (v:register ==# '"' ? '"+' : '') . 'yy'
:nnoremap <expr> Y (v:register ==# '"' ? '"+' : '') . 'Y'
:xnoremap <expr> y (v:register ==# '"' ? '"+' : '') . 'y'
:xnoremap <expr> Y (v:register ==# '"' ? '"+' : '') . 'Y'
Run Code Online (Sandbox Code Playgroud)


rom*_*inl 5

d更像是“剪切”而不是“删除”。你得到的是正常行为。

您可以使用“黑洞寄存器”,但:"_d。我已将其映射到<leader>d.