vim的复制粘贴问题

问题描述

之前使用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+cCtrl+v,这时就要用Shift+Ctrl+cShift+Ctrl+v代替。

如果只是在vim中使用,使用选择缓冲区的话,可以在可视模式中进行选择或者使用"*yny将n行内容复制到选择缓冲区中,使用"*p粘贴到vim,或者使用"+y将内容复制到系统剪切板,再使用C-v进行粘贴。

vim中默认使用选择缓冲区寄存器可以在~/.vimrc中添加

set clipboard = unnamed

这样,直接使用yp就会直接和选择缓冲区进行数据交换了。

你可能感兴趣的:(vim的复制粘贴问题)