[转]vim下鼠标右键无法复制的解决
转自:http://bbs.csdn.net/topics/270070764
这个问题的原因应该是你的vim修改了配置文件,增加了下面这一句
set mouse=a;
vi的三种模式:命令模式,插入模式,可视模式.鼠标可以启动于各种模式中:
The mouse can be enabled for different modes:
n Normal mode
v Visual mode
i Insert mode
c Command-line mode
h all previous modes when editing a help file
a all previous modes
r for |hit-enter| and |more-prompt| prompt
加了这句后,在vim中就开启了在所有模式下的鼠标右键功能,这样就屏蔽了鼠标右键的复制功能
我在网上看了大部分人的解决办法都是注释掉set mouse=a这句或者将其值赋为空,这样确实可以用右键复制了,但是下次vim写代码时就没有鼠标点哪光标到哪的功能了。所以这个方法还不是一个很好的解决方法。
其实在vim里面可以通过其自带的寄存器(通俗点就是剪切板)功能来实现我们需要的复制功能。
我们可以在vim下面选中一段文字(需退出编辑模式) 然后输入y,这样就把当前选中的文字复制到vim的临时寄存器(*号寄存器)中了,再在我们需要粘贴的地方输入“*p就可以将临时寄存器中的内容粘贴进来 (也可以直接按鼠标中键)。我们可以通过:reg命令查看寄存器中的内容。
补充:
如果输入”1y 就是将选中的内容复制到1号寄存器,”2y就是将内容复制到2号寄存器,粘贴“寄存器号p,例如:”1p,“2p;其中有两个寄存器比较特殊,一个是*, 另一个是+,*也就是我们上面说的寄存器,在选中文字的情况下,直接按y,默认复制到*寄存器。
下面我们来说这个+寄存器,当我们需要将vim里面的内容复制到别的地方时,假如是word中,就不能通过”1p将寄存器复制到word下面,因为 word没有1号寄存器这种东西,它只是在vim下存在,这时我们就需要用到+寄存器了,因为+寄存器是和系统剪贴板相通的,也就是复制到#号剪贴板的内 容也会同时存在与系统剪切板内,这下,我们可以通过“+y现将内容复制到系统剪切板上,然后直接在word里面右键粘贴或者ctrl+v就行了。