妈呀,终于搞定VIM的复制粘贴问题了!

转贴:原贴是哪个也搞不清了,网上也就这么一个版本,传来传去的,最后谁是原贴也搞不清了!

 

     用vim这么久 了,始终也不知道怎么在vim中使用系统粘贴板,通常要在网上复制一段代码都是先gedit打开文件,中键粘贴后关闭,然后再用vim打开编辑,真的不 爽;上次论坛上有人问到了怎么在vim中使用系统粘贴板,印象里回复很多,有好几页的回复却没有解决问题,今天实在受不了了又在网上找办法,竟意外地找到 了,贴出来分享一下。

如果只是想使用系统粘贴板的话直接在输入模式按Shift+Inset就可以了,下面讲一下vim的粘贴板的基础知识,有兴趣的可以看看,应该会有所收获的。
vim帮助文档里与粘贴板有关的内容如下:

  1. vim(我这是GVIM)有17个粘贴板,分别是" 0、1、2、...、9、-、*、+、. : 、/:: ;用:reg命令可以查看各个粘贴板里的内容。在vim中简单用y只是复制到“(双引号)粘贴板里,同样用p粘贴的也是这个粘贴板里的内容;
  2. 要将vim的内容复制到某个粘贴板,需要退出编辑模式,进入正常模式后,选择要复制的内容,然后按"Ny完成复制,其中N为粘贴板号(注意是按一下双引号然后按粘贴板号最后按y),例如要把内容复制到粘贴板a,选中内容后按"ay就可以了,有两点需要说明一下:
    • VIM内部("):”号粘贴板(临时粘贴板)比较特殊,直接按y就复制到这个粘贴板中了,直接按p就粘贴这个粘贴板中的内容(也可以说是VIM专用吧);
    • 与外部程序交互(*/+):+号粘贴板是系统粘贴板,用"+y将内容复制到该粘贴板后可以使用Ctrl+V将其粘贴到其他文档(如firefox、gedit)中,同理,要把在其他地方用Ctrl+C或右键复制的内容复制到vim中,需要在正常模式下按"+p;
  3. 要将vim某个粘贴板里的内容粘贴进来,需要退出编辑模式,在正常模式按"Np,其中N为粘贴板号,如上所述,可以按"5p将5号粘贴板里的内容粘贴进来,也可以按"+p("+* 也行)将系统全局粘贴板里的内容粘贴进来。

我用的是GVIM,可能与某些帖子说的不一样,但大体操作还是一样的。好了,现在可以完美运用VIM复制粘贴了,再也不用慢腾腾地点鼠标了。

<think>嗯,用户想了解如何在Vim中进行复制粘贴操作。首先,我需要回忆一下Vim的基本复制粘贴命令。记得在普通模式下,复制是y,粘贴是p或者P。不过具体怎么用呢?比如,复制一行的话是yy,然后p粘贴到下一行。但可能需要更详细的操作说明。 然后,用户可能需要知道如何复制特定的内容,比如单词、段落或者选中的区域。这时候得提到可视模式,v进入字符可视模式,V进入行可视模式,Ctrl+v进入块可视模式。在可视模式下选择文本后,按y复制,再按p粘贴。 还有寄存器的问题Vim使用寄存器来存储复制的内容。默认使用无名寄存器"",但其他寄存器比如"+可以访问系统剪贴板。如果用户需要在Vim和外部程序之间复制粘贴,可能需要检查是否支持clipboard特性,可能需要安装vim-gtk或者neovim的配置。 另外,用户可能遇到的问题包括复制后粘贴的位置不对,或者在插入模式下使用Ctrl+Shift+V导致格式混乱。这时候需要提醒他们使用正确的模式和寄存器。 可能还需要提到一些高级技巧,比如使用命名寄存器,或者如何粘贴而不影响缩进。比如在粘贴前设置:set paste,避免自动缩进的问题。 此外,用户可能分不清Vim和Neovim的配置差异。比如Neovim的配置文件在~/.config/nvim/init.vim,而传统Vim是~/.vimrc。如果用户使用的是Neovim,可能需要调整配置来启用系统剪贴板。 最后,用户可能需要知道如何跨窗口或分屏复制粘贴,这时候可能需要结合系统剪贴板或者使用Vim的缓冲区操作。例如,在分屏时,使用"+y复制到系统剪贴板,然后在另一个分屏中"+p粘贴。 需要确保回答覆盖基本操作、可视模式、寄存器使用、系统剪贴板集成以及常见问题解决。同时,引用相关的参考资料来增强可信度,比如引用中提到的安装vim-gtk或者配置Neovim的部分。</think>### Vim复制粘贴操作教程 #### 一、基础操作 1. **复制(yank)** - 单行复制:在普通模式下按 `yy`,例如复制当前行到寄存器[^4] - 单词复制:光标移动到单词开头按 `yw` - 多行复制:输入数字前缀 `3yy` 表示复制3行 2. **粘贴(paste)** - 普通模式下按 `p` 在光标后粘贴 - 大写 `P` 在光标前粘贴 - 在插入模式下按 `Ctrl+Shift+V`(需系统剪贴板支持) #### 二、可视化模式操作 1. 进入字符选择模式:按 `v` 后移动光标选择文本,按 `y` 复制 2. 进入行选择模式:按 `V` 选择整行,按 `y` 复制 3. 进入块选择模式:按 `Ctrl+v` 选择矩形区域,按 `y` 复制[^3] #### 三、寄存器使用 Vim使用多个寄存器存储内容: - 无名寄存器 `""`:默认存储最近复制/删除内容 - 数字寄存器 `"0`:专存复制内容(不受删除操作影响) - 系统剪贴板 `"+`:跨程序粘贴时使用 `"+y` 复制,`"+p` 粘贴[^4] #### 四、系统剪贴板集成 1. 检查剪贴板支持: ```bash vim --version | grep clipboard ``` 如果显示 `-clipboard`,需安装增强版: ```bash sudo apt install vim-gtk # Ubuntu/Debian[^2] ``` 2. Neovim配置: 在 `~/.config/nvim/init.vim` 中添加: ```vim set clipboard=unnamedplus # 共享系统剪贴板[^1] ``` #### 五、高级技巧 1. 粘贴保留格式: ```vim :set paste # 进入粘贴模式 i Ctrl+Shift+V :set nopaste ``` 2. 跨窗口操作: - 分屏时使用 `"+y` 和 `"+p` 跨窗口复制 - 通过 `:reg` 命令查看所有寄存器内容
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值