Vim: Use + as default register only for yank comma

2019-03-19 14:20发布

问题:

I'd like to use + register (system clipboard) only for yank command (that is, don't overwrite this register on dd or other commands).

:set clipboard+=unnamed

won't work, because it introduces dd overwriting described above.

回答1:

You can overwrite the default yank commands so that they default to the system clipboard, unless another register is explicitly given:

: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'


回答2:

d is more like "cut" than "delete". What you get is normal behavior.

You can use the "black hole register", though: "_d. I have mapped it to <leader>d.



标签: vim clipboard