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
orY
: 复制整行文本。y[n]w
: 复制一(n)个词。y[n]l
: 复制光标右边1(n)个字符。y[n]h
: 复制光标左边1(n)个字符。y
: 从光标当前位置复制到行尾。y0
: 从光标当前位置复制到行首。:m,ny
复制m行到n行的内容。y1G
或ygg
: 复制光标以上的所有行。yG
: 复制光标以下的所有行。yaw
和yas
:复制一个词和复制一个句子,即使光标不在词首和句首也没关系。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行的内容。d1G
或dgg
: 剪切光标以上的所有行。dG
: 剪切光标以下的所有行。daw
和das
:剪切一个词和剪切一个句子,即使光标不在词首和句首也没关系。d/f
:这是一个比较高级的组合命令,它将删除当前位置 到下一个f之间的内容。p
: 在光标之后粘贴。P
: 在光标之前粘贴。
y
, d
, c
, v
都可以跟文本对象。
6.3 寄存器
不使用0-9系统默认的寄存器,也可以自定义寄存器名称。
a-z
:都可以用作寄存器名。”ayy
把当前行的内容放入a
寄存器。A-Z
:用大写字母索引寄存器,可以在寄存器中追加内容。 如”Ayy
把当前行的内容追加到a
寄存器中。:reg
显示所有寄存器的内容。“”
:不加寄存器索引时,默认使用的寄存器。“*
:当前选择缓冲区,”*yy
把当前行的内容放入当前选择缓冲区。“+
:系统剪贴板。”+yy
把当前行的内容放入系统剪贴板。