<c-r>+
将粘贴文本。是否可以不使用鼠标来执行?像A中的
"+yy
,当切换到B时,我徒劳地探索了几种组合。然后我搜索了“跨终端复制”,但是什么也没找到。用户@statox建议使用可视模式的一种解决方案,即在切换到B时,在A中使用
o<c-r>+
。 />有没有简单的方法可以在不进入v模式的情况下在A中复制文本?公认进入v模式不会涉及太多击键,只是想知道是否有更好的方法。例如。如果光标位于一行的中间,则v$"+y
复制整行(以注册o<c-r>+
),而yy
则用额外的击键来做同样的事情。或者,我的问题可以简化为可以用比"
更少的键击来进行复制,以便可以使用0v$y
进行粘贴。#1 楼
您可以通过以下方法检查Vim是否带有剪贴板支持: br />:echo has('clipboard')
通过将剪贴板寄存器和默认寄存器与
1
中的此设置同步,可以使所有操作更加无缝: 如果
vimrc
的输出是:echo has('clipboard')
,请考虑安装适当的Vim,例如0
或vim-gtk
(软件包名称可能因发行版而异)。#2 楼
我认为您已经在问题中提到的解决方案是正确的。如果要减少击键次数,可以简单地创建一个地图,例如vmap <leader>y "+y
vmap <leader>d "+d
nmap <leader>p "+p
nmap <leader>P "+P
vmap <leader>p "+p
vmap <leader>P "+P
在此处查看第二个条目。
#3 楼
要扩展@romainl的答案(具有剪贴板支持),可以使用与系统范围剪贴板共享的寄存器。/将选定的内容存储在寄存器中,并将其粘贴到目标Vim终端。这两个特殊寄存器
+
和*
与系统范围的剪贴板共享(因此也共享许多其他程序,例如Web浏览器,gedit等)。寄存器+
与复制/粘贴缓冲区关联,而*
与选择缓冲区(例如在Ubuntu中的文本字段上单击鼠标中键插入选择的副本)关联,并且可以使用ctrl + v
(gnome-terminal上的ctrl + shift + v
)进行粘贴)。#4 楼
1)在Fedora上,我使用以下设置:dnf install vim-X11
vim-X11带有剪贴板支持-也许在其他发行版中类似。 > 2)在我的.bashrc中设置别名
alias vim="vimx"
3)在.vimrc中:
set clipboard=unnamedplus
现在,Vim中的常规键进入系统剪贴板,并且vim外部的每个Ctrl-C都可以粘贴到vim中。
#5 楼
如果使用的是Mac(OSX),则可以安装bpcopy(使用brew install pbcopy -有关更多详细信息,请参见http://brew.sh/)。然后在不触摸鼠标的情况下运行以下命令(直接命令行):示例:
1)在TERMINAL#001中:
cat /tmp/stuff.txt | pbcopy
2)您可以使用OSX终端应用程序中的内置热键切换到#002终端(无需使用鼠标):command + i
3)在TERMINAL#中002:在vim中打开新文件
vi newfile
4)使用i
将vim置于插入模式5)从剪贴板插入文本使用命令+ V(在Mac上从剪贴板粘贴)
6)祝您玩得开心!
评论
你到底是什么问题?您似乎有解决方案:以可视模式选择文本(为什么要使用鼠标?),将文本以“ + y”放置在剪贴板寄存器中,在另一个vim实例中,以“ + p”放置剪贴板。还是重复?您无需进入视觉模式即可拉动某些东西。您可以在y之后加上运动(:help motion.txt)或对象(:help object-select)。如果您经常在Vim实例之间拖动和粘贴,则可能会发现将剪贴板设置为包括未命名或未命名加上非常有用。参见:help'剪贴板'。然后在实例之间复制就可以了。
我的评论的重点不是可视模式,实际上我很难理解您的问题:起初我以为是将一些文本从一个终端复制到另一个终端的事实,现在看来,使用的击键次数与可以拉入剪贴板寄存器。如果是第二种情况,那么加里·约翰(Garyjohn)的评论是有意义的。
0v $与V相同。很容易为“ + y::nnoremap
@Carpetsmoker您的解决方案很好。如果您将其粘贴到答案区域,我想将其作为最佳解决方案。似乎没有键映射,我可以为我的问题中的副本做的最好的事情是V“ + y,四个键击。