我想只为yank命令使用register(系统剪贴板)(也就是说,不要在dd或其他命令上覆盖这个寄存器).
:set clipboard+=unnamed
不会起作用,因为它引入了上面描述的dd覆盖.
除非明确给出另一个寄存器,否则您可以覆盖默认的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'