菜鸟笔记
提升您的技术认知

Vim 剪切复制粘贴

阅读 : 1542

vim 默认情况下有 12 个粘贴板(寄存器),分别是 0、1、2、...、9、a、“、+。用 :reg 命令可以查看各个粘贴板里的内容。

在 vim 中简单用 y 命令只是复制到 "(双引号)粘贴板里,同样用 p 命令粘贴的也是这个粘贴板里的内容。 要将 vim 的内容复制到某个粘贴板,需要先退出编辑模式,再进入命令模式后,选择要复制的内容,然后按 "Ny(注意带引号)完成复制,其中 N 为粘贴板号(注意是按下 双引号 + 粘贴板号 + y),例如要把内容复制到粘贴板 a,选中内容后按 "ay 就可以了。

这其中有 2 点需要说明一下:

  • "号粘贴板(临时粘贴板)比较特殊,直接按 y 就复制到这个粘贴板中了,直接按 p 就粘贴这个粘贴板中的内容.
  • + 号粘贴板是系统粘贴板,用 "+y 将内容复制到该粘贴板后可以使用 ctrl+v 将其粘贴到其他文档(如 firefox、gedit)中,同理,要把在其他地方用 ctrl+c 或右键复制的内容复制到 vim 中,需要在正常模式下按 "+p

要将 vim 某个粘贴板里的内容粘贴进来,需要先退出编辑模式,再在命令模式按 "Np,其中 N 为粘贴板号,如上所述,命令 "5p 会将 5 号粘贴板里的内容粘贴进来,也可以按 "+p 将系统全局粘贴板里的内容粘贴进来。

剪切和复制、粘贴

  • [n]x: 剪切光标右边n个字符,相当于d[n]l。
  • [n]X: 剪切光标左边n个字符,相当于d[n]h。
  • y: 复制在可视模式下选中的文本。
  • yy or Y: 复制整行文本。
  • y[n]w: 复制一(n)个词。
  • y[n]l: 复制光标右边1(n)个字符。
  • y[n]h: 复制光标左边1(n)个字符。
  • y: 从光标当前位置复制到行尾。
  • y0: 从光标当前位置复制到行首。
  • :m,ny 复制m行到n行的内容。
  • y1Gygg: 复制光标以上的所有行。
  • yG: 复制光标以下的所有行。
  • yawyas:复制一个词和复制一个句子,即使光标不在词首和句首也没关系。
  • d: 删除(剪切)在可视模式下选中的文本。
  • d$: 删除(剪切)当前位置到行尾的内容。
  • d[n]w: 删除(剪切)1(n)个单词
  • d[n]l: 删除(剪切)光标右边1(n)个字符。
  • d[n]h: 删除(剪切)光标左边1(n)个字符。
  • d0: 删除(剪切)当前位置到行首的内容
  • [n] dd: 删除(剪切)1(n)行。
  • :m,nd 剪切m行到n行的内容。
  • d1Gdgg: 剪切光标以上的所有行。
  • dG: 剪切光标以下的所有行。
  • dawdas:剪切一个词和剪切一个句子,即使光标不在词首和句首也没关系。
  • d/f :这是一个比较高级的组合命令,它将删除当前位置 到下一个f之间的内容。
  • p: 在光标之后粘贴。
  • P: 在光标之前粘贴。

y, d, c, v都可以跟文本对象。

6.3 寄存器

不使用0-9系统默认的寄存器,也可以自定义寄存器名称。

  • a-z:都可以用作寄存器名。”ayy把当前行的内容放入a寄存器。
  • A-Z:用大写字母索引寄存器,可以在寄存器中追加内容。 如”Ayy把当前行的内容追加到a寄存器中。
  • :reg 显示所有寄存器的内容。
  • “”:不加寄存器索引时,默认使用的寄存器。
  • “*:当前选择缓冲区,”*yy把当前行的内容放入当前选择缓冲区。
  • “+:系统剪贴板。”+yy把当前行的内容放入系统剪贴板。