Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5359010
  • 博文数量: 1144
  • 博客积分: 11974
  • 博客等级: 上将
  • 技术积分: 12312
  • 用 户 组: 普通用户
  • 注册时间: 2005-04-13 20:06
文章存档

2017年(2)

2016年(14)

2015年(10)

2014年(28)

2013年(23)

2012年(29)

2011年(53)

2010年(86)

2009年(83)

2008年(43)

2007年(153)

2006年(575)

2005年(45)

分类: LINUX

2008-12-06 12:24:58

VI技巧,很实用,来自CU
2007年10月10日 星期三 12:03
如何用vi 复制第5行到第10行并粘贴到第12行之后?

方法1:
光标放到第五行,
输入:y6y
光标放到第12行,
输入:p

方法2:
命令行模式下输入
:5,10 co 12

方法3:
我一般都是
先移到第五行 d6
p
再移到12行
p

延伸一下, 有时候不想费劲看多少行或复制大量行时,可以使用标签来替代

光标移到起始行,输入ma
光标移到结束行,输入mb
光标移到粘贴行,输入mc

然后 :'a,'b co 'c

把 co 改成 m 就成剪切了



那删除呢

是不是5,10 de
刚才试了试,的确可以



也可以把大量的代码保存到一个文件,然后在另一个文件里打开需要拷贝的代码。
  
   在文件一:
光标移到起始行,输入ma
光标移到结束行,输入mb
       然后:'a, 'b w filename

   在文件二:
       光标移到需要赋值的行,输入:
       :r filename


行拷贝还有一个比较简单的方法:
操作如下:
找到要复制的行,键盘按下shift+v, 然后用方向键上下或j h 移动想要copy的行,然后按下y

在移动到目的行,按下p即完成拷贝多行。这种方法适合没有行号的多行copy。


Vi 提供了文本移动和复制命令,用户利用这些指令可以方便的复制字符、文字、行还有文本块。
有关的命令如下:
yy 将当前行复制到缓冲区
yw 将当前单词复制到缓冲区
y1 将光标处的一个字符复制到缓冲区
p 将缓冲区的信息粘贴到光标的后面
:行号1 ,行号2 copy 行号3                                  将行号1到行号2的内容复制到行号3所在行的后面。
:行号1 ,行号2 move 行号3                                     将行号1到行号2的文本内容移动到行号3所在行的后面。
阅读(5771) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2008-12-13 11:02:05

还可以加个range 把所有包涵key的行移到文件尾行 :g/key/ m$