Vim: Use + as default register only for yank comma

2019-03-19 13:43发布

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.

标签: vim clipboard
2条回答
唯我独甜
2楼-- · 2019-03-19 14:18

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.

查看更多
唯我独甜
3楼-- · 2019-03-19 14:34

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'
查看更多
登录 后发表回答