GVIM/VIM的使用操作——复制粘贴操作

Posted 摆渡沧桑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GVIM/VIM的使用操作——复制粘贴操作相关的知识,希望对你有一定的参考价值。

GVIM/VIM的使用操作 (持续更新中。。。)
VIM的基本操作不做详细描述,主要介绍一些在实际操作的比较复杂的操作,如复制粘贴、

复制、粘贴

用vim已经半年了,复制粘贴的操作我只会在同一个窗口中使用。始终也不知道怎么在vim中使用系统粘贴板,最近也在写很多工程文档,有时需要打开多个窗口,然后需要复制粘贴另一个窗口内的内容,经过查阅网上资料和手册,自己动手操作了一番,学会了如何使用。

一、讲一下vim的粘贴板的基础知识

vim(我是GVIM)有以下粘贴板,分别是 "、 0、1、2、…、9、-、*、+、. 、 : 、%(、是分隔号)
用:reg命令可以查看各个粘贴板里的内容,如下,各个粘贴板里面已经有我之前复制在各个粘贴板里的内容。

二、在同一个vim编辑器中简单的复制粘贴

在vim中简单用yy只是复制到 “ 粘贴板里(第一个),同样用p粘贴的也是这个粘贴板里的内容
复制:nyy (n表示光标所在位置下复制n行)
粘贴:p
例:在某一行中粘贴下面第157-160行信息。则需要将光标移至改157行,在命名模式下按4yy

按键过程提示信息在窗口底端如下:(提示信息需要根据.vimrc在环境变量中设置)

此时将光标移至需要粘贴的行即可(如粘在162行后,只需将光标移至162行所在行):

三、将内容复制至指定寄存器

要将vim的内容复制到某个粘贴板,需要退出编辑模式,进入正常模式后,选择要复制的内容,然后按 "Xyy 完成复制,其中 X为粘贴板号(注意是按一下双引号然后按粘贴板号最后按yy),例如要把内容复制到粘贴板a,选中内容后按"ay就可以了,有两点需要说明一下:
例: 如需要复制28行信息至寄存器6。则需要在命令模式中按键:"6yy

按键操作信息显示在窗口右下方:(图中还有y没输入)

输入完整命令后,检查寄存器,如下,可以看到之前的寄存器内容已经被刚才复制的内容代替。

粘贴的时候,输入 ”6p

三、将内容复制至指定寄存器

当需要和外部窗口进行复制粘贴时进行
需要说明的是,*号粘贴板是系统粘贴板(有的地方+也代表系统粘贴板)

  1. 用 "*yy 将内容复制到系统粘贴板后,在外部可以直接使用Ctrl+V将其粘贴到其他文档中。(”+yy)也是可以的。
    例:如将以下整个模块,复制至系统粘贴板中按键:“*12yy
    (12表示行数)

    按键过程的命令如下所示:(图中还有y没输入)

    输入完成后显示如下图,显示12行已复制系统粘贴板 * 中

    然后复制在其他任何一个可插入窗口,如ctrl+v粘贴在此博客中:
module div_test(
);
reg clk_i,rst_n_i;
wire div_2_o,div_4_o,div_8_o,div_2hz_o;

always @(posedge clk_i or negedge rst_n_i)
begin
    if (! rst_n_i)begin
reg clk_i,rst_n_i;
reg clk_i,rst_n_i;

endmodule;
  1. 要把在其他地方用Ctrl+C或右键复制的内容复制到vim中,需要在正常模式下按"+p;
    例1:将上面一行复制至系统粘贴板+中。
    查看vim中reg寄存器* 中的内容,如下,可以看到上面的内容已经被复制至系统粘贴板中。

    例2:将一个vim窗口中某一块内容复制至另一个vim中。
    如将下面div_clk.v 的34-42行复制至另外一个vim中。

    将光标移至34行,按键:“*9yy
    ("+9yy)也可以

    然后复制div_test.v中27行之后,按键: ”*p
    ("+p)也可以,但需要寄存器相对应。

    结果如下:

以上是关于GVIM/VIM的使用操作——复制粘贴操作的主要内容,如果未能解决你的问题,请参考以下文章

Python 2.7复制并粘贴超链接文本

如何将vim里的内容复制粘贴到vim之外的地方

通过命令行使用“复制”和“粘贴”时备份文件

Linux Putty 复制粘贴

mac电脑中无法进行复制粘贴如何解决

在 Excel(VSTO 代码)中使用剪贴板复制粘贴会冻结其他 Microsoft Office 应用程序