vim默认可以使用系统剪贴板吗?


Can vim use the system clipboard(s) by default?

我遇到了几个问题,因为vim的标签是因为缺乏一个更好的术语,上帝可怕。我想开始使用多个Gnome选项卡,每个选项卡都有一个不同的vim实例。一切都应该正常工作,但是,只有系统缓冲区+可用于共享文本。这使得所有命令的两个击键时间更长:

y y成为" + y y

y w成为" + y w

d ' k成为" + d ' k

当人们认为像这样简单的抽动/粘贴操作时尤其如此

y y p

" + y y " + p

反正有没有指示vim总是使用系统剪贴板?

有关在Gnome终端选项卡中使用多个vim实例的更多信息,请参阅此处


我在这里找到了解决问题的方法。 如果将以下内容添加到.vimrc文件中

1
set clipboard=unnamedplus

你在vim中猛拉的所有内容都将转到未命名的寄存器,反之亦然。


顺便说一句,如果您只想使用终端的本机复制/粘贴处理,建议设置

1
:se mouse-=a

并且只需双击/右键点击您在终端中的习惯。

也就是说,我喜欢vim分割窗口以及你可以用鼠标拖动窗口分隔器/定位光标的事实(异端!)。 这需要鼠标+ = a ...(并且还可以在ssh / screen会话上工作!)。

我习惯这样做:

1
:%retab|%>|%y+|u

在召回时有这样的命令。 请注意,"+寄存器在命令行中编码。要将最后一个视觉选择复制到剪贴板,

1
:*y+

要么

1
:'<,`>y+


可能的解决方法:

1
2
3
4
5
6
7
8
"Ctrl-c to copy in + buffer from visual mode
vmap <C-c>"+y

"Ctrl-p to paste from the + register in cmd mode

map <C-v>"+p

"Ctrl-p to paste from the + register while editing

imap <C-v> <esc><C-v>