如何在 vim 中仅将抽取的文本复制到系统剪贴板
How to copy only yanked text to system clipboard in vim
我可以使用 clipboard=unnamedplus
复制到系统剪贴板。但是,当使用 dd
或 ciw
.
等命令时,这也会将文本复制到系统剪贴板
例如,如果我复制一些文本,然后使用 ciw
,我要替换的文本会被复制到系统剪贴板中,我必须再次复制原始文本才能粘贴它.
我想要的是只有当我拉出(y
)一个选择,或者使用诸如yy
、yiw
或类似的命令时才复制到系统剪贴板。
如果只想在某些情况下复制到系统剪贴板,可以使用"*
寄存器而不是全局设置clipboard
,例如:"*yy
.
或者,如果您想确保命令不会进入系统剪贴板,您可以使用不同的寄存器或黑洞寄存器 "_
。
有关寄存器的更多信息:
解决办法是把这个放在我的.vimrc
:
" Use system clipboard by default
set clipboard=unnamedplus
" Remap 'c', 'C', 'd', 'D', 'x' and 'X' to save text in a custom register
nnoremap c "cc
vnoremap c "cc
nnoremap C "cC
vnoremap C "cC
nnoremap d "dd
vnoremap d "dd
nnoremap D "dD
vnoremap D "dD
nnoremap x "xx
vnoremap x "xx
nnoremap X "xX
vnoremap X "xX
我在这里找到了解决方案:
我可以使用 clipboard=unnamedplus
复制到系统剪贴板。但是,当使用 dd
或 ciw
.
例如,如果我复制一些文本,然后使用 ciw
,我要替换的文本会被复制到系统剪贴板中,我必须再次复制原始文本才能粘贴它.
我想要的是只有当我拉出(y
)一个选择,或者使用诸如yy
、yiw
或类似的命令时才复制到系统剪贴板。
如果只想在某些情况下复制到系统剪贴板,可以使用"*
寄存器而不是全局设置clipboard
,例如:"*yy
.
或者,如果您想确保命令不会进入系统剪贴板,您可以使用不同的寄存器或黑洞寄存器 "_
。
有关寄存器的更多信息:
解决办法是把这个放在我的.vimrc
:
" Use system clipboard by default
set clipboard=unnamedplus
" Remap 'c', 'C', 'd', 'D', 'x' and 'X' to save text in a custom register
nnoremap c "cc
vnoremap c "cc
nnoremap C "cC
vnoremap C "cC
nnoremap d "dd
vnoremap d "dd
nnoremap D "dD
vnoremap D "dD
nnoremap x "xx
vnoremap x "xx
nnoremap X "xX
vnoremap X "xX
我在这里找到了解决方案: