如何使 Vim 粘贴始终从寄存器 0 粘贴,除非指定

gar*_*tor 5 vim

Vim 中的寄存器0应包含最后一个 yank 命令 ( ) 的结果y

\n\n

现在,我不想p从默认寄存器 ( ) 粘贴,而是从寄存器粘贴,除非指定了寄存器(通过""p0"+p例如,通过 )。

\n\n

我怎样才能在我的 .vimrc 中做到这一点?

\n\n

我试过这个:

\n\n
xnoremap p "\'v:register\'p\n
Run Code Online (Sandbox Code Playgroud)\n\n

但我不知道如何执行 \xe2\x80\x9cuse-the-specified-register-otherwise-0\xe2\x80\x9d 部分。

\n

gar*_*tor 3

从这里找到的

:nnoremap <expr> p (v:register ==# '"' ? '"0' : '') . 'p'
:nnoremap <expr> P (v:register ==# '"' ? '"0' : '') . 'P'
:xnoremap <expr> p (v:register ==# '"' ? '"0' : '') . 'p'
:xnoremap <expr> P (v:register ==# '"' ? '"0' : '') . 'P'
Run Code Online (Sandbox Code Playgroud)