vi中的块拷贝

本文介绍如何利用Vim编辑器的复制(yank)、删除(delete)、修改(change)等基本操作,结合标记(marks)和寄存器(registers)功能,实现高效灵活的文本块操作方法。

转自:http://blog.sina.com.cn/s/blog_7038e68e0100njgi.html

一、预备知识:

y 复制(yank)
d 删除(delete)
p 粘贴(put,小写表示在当前位置之后粘贴,大写表示在当前位置之前粘贴)
c 修改(change)
m<字母> 对光标位置做标志(mark)
“<字母> 对寄存器进行操作(英文的双引号,小写字母为覆盖模式,大写字母为追加模式)
`<字母> 将光标移至标志<字母>下(Esc下面的按键)
‘<字母> 将光标移至标志<字母>所属行第一个非空白字符下(英文的单引号)

二、举例:
yw 复制光标当前位置至该单词 (word)结束位置的字符串
yy 复制光标当前行
y3y 复制从光标当前行开始往下3行
……

三、实现需求:
研究以上格式(第一个y意思是我要进行复制啦,之后是我要复制的是什么呢?)得出,欲复制某一文本块,其格式是y<文本块的范围>,其中<文本块的范围>可通过m<字母>来确定,所以可通过以下步骤灵活地对文本块进行操作:
1、将光标移至欲对之操作的 文本块开始或结尾字符处,m<字母>(例如ma);
2、再将光标移至该文本块的另一端的字符处(如果m标志的是文本块开始字符,则将光标移至文本块结束字符之后;如果m标志的是文本块结束字符,则将光标移至文本块开始字符下);
3、y`<字母>(例如y`a,其中“`”是“Esc”下的按键,如果用英文单引号则整行复制,切记);
4、将光标移至欲粘贴的位置,p;
5、ok,大功告成!

四、扩展:
在执行步骤3时,通过”<字母>y`<字母>(例如”ay`a,格式中的两处<字母>可以相同,因为它们是完全不相 关的两个概念)可以将复制的内容放入寄存器<字母>中,然后通过”<字母>p(例如”ap)进行粘贴。

五、进一步扩展:
用以上方法将另一文本块标志,通过” <字母>y`<字母>(采用追加模式,例如”Ay`b,是大写的字母A)将该文本块追加到原寄存器<字母>中,然后还是通过”<字母>p(例如”ap)进行粘贴。

d(elete)、c(hange)对文本块的操作类似于y(ank)操作……^O^……
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值