问题描述
之前使用vim
的时候为了方便配置,直接使用了spf13-vim进行配置。因此有不少的设置不符合使用的需求。比如复制粘贴的时候,鼠标框选会自动进入VISUAL
模式,导致只能使用vim
的缓冲剪贴区,不能方便的复制到系统剪贴板在其他的应用中使用。
问题解决
方案1
不直接框选进入可视模式。
在~/.vimrc
中有这样一行配置。
set mouse=a
用于设置鼠标模式。因此在~/.vimrc.local
中添加
set mouse=v
进行覆盖。这种模式既可以使用鼠标滚轮等等功能,又能防止框选进入VISUAL
模式。
方案2
使用快捷键,将选中内容加入系统剪切板。
在框选内容之后,使用快捷键"+y
将选择缓冲区中的内容复制到系统剪切板中。这样就能用C-v
来进行粘贴了。
相关内容
vim的可视模式VISUAL
vim
有一个可视模式(Visual Mode)
,在此模式下可以选择区域。可以在普通模式下键入v进入可视模式,键入V进入行可视模式,或者键入Ctrl+v
进入列可视模式。当选择的时候这些被选择内容已经实时保存到了选择缓冲区中。
选择缓冲区和剪切板
Linux
中存在两个剪切板,选择缓冲区(X11 selection buffer)
和剪切板(clipboard)
。
选择缓冲区是实时的,当使用鼠标或者键盘选择内容的时候内容就已经存在了选择缓冲区。可以使用鼠标中键或键入Shift+Insert
来粘贴选择缓冲区的内容。但对于有些GUI
程序,比如gedit
,只能通过鼠标中键调用选择缓冲区的内容,使用Shift+Insert
的话,调用的是剪切板的内容。
剪切板和Windows
的剪切板类似,在选择文字内容后,执行Ctrl + c
或在菜单里选择‘复制’的话,这时内容才存放到剪切板里。而使用剪切板的内容,则是Ctrl+v
。 但在有些情况下,比如gnome-terminal
,不能直接使用Ctrl+c
,Ctrl+v
,这时就要用Shift+Ctrl+c
,Shift+Ctrl+v
代替。
如果只是在vim
中使用,使用选择缓冲区的话,可以在可视模式中进行选择或者使用"*yny
将n行内容复制到选择缓冲区中,使用"*p
粘贴到vim,或者使用"+y
将内容复制到系统剪切板,再使用C-v
进行粘贴。
vim
中默认使用选择缓冲区寄存器可以在~/.vimrc
中添加
set clipboard = unnamed
这样,直接使用y
和p
就会直接和选择缓冲区进行数据交换了。