欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

vim的复制粘贴问题

程序员文章站 2022-05-14 22:20:29
...

问题描述

之前使用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就会直接和选择缓冲区进行数据交换了。