I\'d like to use + register (system clipboard) only for yank command (that is, don\'t overwrite this register on dd or other commands).
<
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'
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.