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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 关于Vim vim是我最喜欢的编辑器,也是linux下第二强大的编辑器。 虽然emacs是公认的世界第一,我...
    Dyworldhua阅读 1,482评论 0 2
  • 曾经使用了几年多的Vim,手册也翻过一遍。虽然现在不怎么用vim了,曾经的笔记还是贴出来,与喜欢vim的朋友分享。...
    Sylar丶阅读 924评论 0 0
  • 1.1 Vim的几种模式 正常模式:可以使用快捷键命令,或按:输入命令行。 插入模式:可以输入文本,在正常模式下,...
    奶思草莓阅读 16,289评论 0 7
  • Vim几句话介绍Vim是Unix系统上的文本编辑软件(你该不会不知道什么是文本编辑软件吧!),在windows上也...
    何必遠方阅读 3,249评论 0 3
  • 给并不是很专业的模特儿拍照的时候,她们可能会因为经验的问题不知道要如何摆pose,即便我们要求对方摆出一些姿势,可...
    LikeAKid阅读 584评论 0 4