如何在vim中仅将拖动的文本复制到系统剪贴板

如何在vim中仅将拖动的文本复制到系统剪贴板,vim,copy-paste,Vim,Copy Paste,我可以使用clipboard=unnameplus复制到系统剪贴板。但是,当使用诸如dd或ciw等命令时,也会将文本复制到系统剪贴板 例如,如果复制一些文本,然后使用ciw,则要替换的文本将被复制到系统剪贴板中,我必须再次复制原始文本才能粘贴它 我想要的是仅当我拖动(y)一个选择时复制到系统剪贴板,或者使用诸如yy、yiw或类似命令。如果您只想在某些情况下复制到系统剪贴板,您可以使用“*寄存器而不是全局设置剪贴板,例如:”*yy 或者,如果要确保命令不会进入系统剪贴板,可以使用不同的寄存器或黑洞

我可以使用
clipboard=unnameplus
复制到系统剪贴板。但是,当使用诸如
dd
ciw
等命令时,也会将文本复制到系统剪贴板

例如,如果复制一些文本,然后使用
ciw
,则要替换的文本将被复制到系统剪贴板中,我必须再次复制原始文本才能粘贴它


我想要的是仅当我拖动(
y
)一个选择时复制到系统剪贴板,或者使用诸如
yy
yiw
或类似命令。

如果您只想在某些情况下复制到系统剪贴板,您可以使用
“*
寄存器而不是全局设置
剪贴板
,例如:
”*yy

或者,如果要确保命令不会进入系统剪贴板,可以使用不同的寄存器或黑洞寄存器

有关注册表的详细信息:

  • :h寄存器

如果您只想在某些情况下复制到系统剪贴板,您可以使用
“*
寄存器,而不是全局设置
剪贴板,例如:
”*yy

或者,如果要确保命令不会进入系统剪贴板,可以使用不同的寄存器或黑洞寄存器

有关注册表的详细信息:

  • :h寄存器

解决方案是将其放入my
中。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
我在这里找到了解决方案:


解决方案是将其放入my
中。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
我在这里找到了解决方案:


这并没有真正的帮助。我知道我可以手动使用寄存器。我想要的是以某种方式覆盖
y
命令以复制到剪贴板,而不必每次写入
“*
。这并没有真正的帮助。我知道我可以手动使用寄存器。我想要的是以某种方式覆盖
y
命令以复制到剪贴板而不必写入
”*
每次。