2yy 复制两行,y2y 也可以。ㄟ,请举一反三好不好!:-)
y^ 复制至行首,或 y0。不含光标所在处字符。
y$ 复制至行尾。含光标所在处字符。
yw 复制一个 word。
y2w 复制两个字。
yG 复制至档尾。
y1G 复制至档首。
p 小写 p 代表贴至光标后(下)。
P 大写 P 代表贴至光标前(上)。整行的复制,按 p 或 P 时是插入式的贴在下(上)一行。非整行的复制则是贴在游标所在处之后(前)。
"ayy 将本行文字复制到 a 缓冲区。
a 可为 26 个英文字母中的一个,如果是小写的话,原先的内容会被清掉,如果是大写的话是 append 的作用,会把内容附加到原先内容之后。" 是 Enter 键隔壁的那一个同上符号(ditto marks),当然是要和 shift 键同时按的。
"ap 将 a 缓冲区的内容贴上。
这个缓冲区的术语在 Vim 称为 registers,Vim 扩充了相当多的功能。您用 d、c、s、x、y 等指令改变或删除的内容都是放在 registers 中的。例如:您用 dd 删除的一行,也是可以使用 p 来贴上的。只要是在缓冲区的内容都可以使用 p 来贴上,不是一定要 y 起来的内容才能用 p。因此您认为 p 是 paste 也可以,认为是 put 可能较正确。
5"ayy 复制五行内容至 a 缓冲区。
5"Ayy 再复制五行附在 a 内容之后,现在 a 中有十行内容了!
不要我一直用 a 您就认为只有 a 可以用喔。26 个英文字母都可以的,交叉运用下,您会发觉 Vim 肚量不小。
:reg(冒号命令)就会列出所有 registers 的代号及内容。您现在就试着按看看。咦!怎么还有数目字、特殊符号的缓冲区,原来您刚刚删除(复制)的内容就预设放在 " 这个缓冲区,然后依序是 0,1,2,...9。也就是说您按 p 不加什么的话,是取出 " 缓冲区的内容。% 指的是目前编辑的档案,# 指的是前一次编辑的档案。
当我们插入文本行时,可以使用p命令或是P命令。所不同的是,
p
命令是在当前行的下一行进行插入,插入后光标移动到新行的开头处。而P
命令是在当前的上一行进行插入,插入后光标移到新行的下一行的开头处。我们还可以使用gp或gP命令。不同的是,gp
命令是将光标移动到新行的下一行的开头处。而gP
是在当前的上一行进行插入,插入后光标移动新行的下一行的开头处。注意事项:
要将vim的内容复制到某个粘贴板,需要退出编辑模式,进入正常模式后,选择要复制的内容,然后按"Ny完成复制,其中N为粘贴板号(注意是按一下双引号然后按粘贴板号最后按y),例如要把内容复制到粘贴板a,选中内容后按"ay就可以了,有两点需要说明一下:
- “号粘贴板(临时粘贴板)比较特殊,直接按y就复制到这个粘贴板中了,直接按p就粘贴这个粘贴板中的内容;
- +号粘贴板是系统粘贴板,用"+y将内容复制到该粘贴板后可以使用Ctrl+V将其粘贴到其他文档(如firefox、gedit)中,同理,要把在其他地方用Ctrl+C或右键复制的内容复制到vim中,需要在正常模式下按"+p;
再加一条:如果想撤销刚才的修改,可以输入命令 u