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

时间:2012-11-14 14:24:45

标签: vim clipboard

我想对yank命令使用+ register(系统剪贴板) (也就是说,不要在dd或其他命令上覆盖此寄存器)。

:set clipboard+=unnamed

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

2 个答案:

答案 0 :(得分: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'

答案 1 :(得分:4)

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

您可以使用“黑洞注册”:"_d。我已将其映射到<leader>d