• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

vi中多个文件相互之间的复制、粘贴功能简介!

发布: 2007-6-08 22:43 | 作者: seanhe | 来源: | 查看: 285次 | 进入软件测试论坛讨论

领测软件测试网
昨天有人提出此类问题,我特地加以编辑一下,请大家共享,可能写的不好!

大家在vi编辑中,常常遇到想把文件A里面的一行或多行,复制到B文件里面去
(可能很多人不知道怎么办),该怎么做了?
下面是几中方法:
1.如果你有多台机器,而且是联网的,你可以.netterm虚拟终端,telnet登陆主机对A文件进行修改、复制,然后打开B文件粘贴过去!
2.如果是单机,当然要用unix自带的编辑功能呢
  先简单介绍一些vi编辑里的命令:
  (A).yw 将当前字存入无名缓冲区,前面可加"x,表示存入名字为x的有名 
缓冲区(x为a-z),也可加数字表示存入的字数,以后可用P或p命 
令取出 
yy 将当前行存入无名缓冲区,用法参看yw 

   (B).命令如下:a-Z 是缓冲区,也可移出数字1-9指定的删除缓冲区 
利用命名缓冲区可很好地保存若干文本段,便于以后存取、移动或者重排。这些缓冲区用a到z字母命名!为了访问这些缓冲区中的一个,要使用双引号 
例如:要把一行插入a缓冲区,可键入: 
"ayy 
为了把这个文本放回该文件中,键入"ap 


  (c).m做标志命令:
  m 字母 用字母标记当前行,以后可用 '字母使光标移动到当前行, 
(参看'命令)

列子:1。将a文件中的4行到b文件中

      命令如下:"ay4+ 
                  :ex b (转到b文件中)
                   然后"ap
        2. 将a中多行复制到b文件中
先在开始处做标志mk 
然后在末尾用"ay'k (光标自动回到开始处,此时已经把你的内容放到缓冲区了)
其中a表示缓冲区a 
然后用ex转义到你的文件B中,然后用"ap命令粘贴就行

3。如果你文件中有多次要复制粘贴的话,看下面:
a表示缓冲区a ,你还继续可以使用缓冲b吗 
缓冲区有a-z和1-9这么多 
缓冲区就好象windows下的煎切版一样,它有好多个,你可以把你想要的复制进去,然后粘贴,只不过你用"ay时候多换a就是了,如你要复制462行用"ay ,复制536行用"by
   
我编写的不好,恳请斑竹帮我修改和补充,谢谢!

【发表回复】【查看CU论坛原帖】【添加到收藏夹】【关闭】
 sdccf 回复于:2004-01-14 11:40:03
好帖子,加精!

 sfpeng 回复于:2004-01-14 12:04:39
平时经常用到其中的一些操作,但一直没有深入研究,这么全面的介绍真的不错,UP!

 unixgaoshou 回复于:2004-01-14 13:47:35
多谢楼主!

 simonzhan 回复于:2004-01-14 13:52:38
rt

 sysgxb 回复于:2004-01-14 13:57:00
我试试,看看怎么样

 saintdragon 回复于:2004-01-14 14:05:19
此外,可以用r命令将另一个文件中的所有内容读取到文件的光标定位处!

 jxp2002 回复于:2004-01-14 14:12:00
[quote:da2d0d816a="saintdragon"]此外,可以用r命令将另一个文件中的所有内容读取到文件的光标定位处![/quote:da2d0d816a]
请saintdragon"把功能把此功能,r命令写全,多谢谢!

 cuit 回复于:2004-01-14 14:31:22
我一般不记那么复杂的命令,
如果要复制A文件的N行,我一般把光标移到开始处用:
:.,+n w!/tmp/x1
然后在B文件中光标移到我要复制的位置:
:r /tmp/x1

 jxp2002 回复于:2004-01-14 15:05:42
如果有很多行的话,数来数去的真的很烦人的,我也希望找一个更简单的地方

 meteor06 回复于:2004-01-14 15:20:04
[quote:52a15812e3="jxp2002"]如果有很多行的话,数来数去的真的很烦人的,我也希望找一个更简单的地方[/quote:52a15812e3]
set number 加上行号

 cutegirl 回复于:2004-01-14 15:24:40
set nonu 隐藏行号

 cuit 回复于:2004-01-14 16:04:32
[quote:f46f9a8a24="jxp2002"]如果有很多行的话,数来数去的真的很烦人的,我也希望找一个更简单的地方[/quote:f46f9a8a24]

 :lol: 又不是数钱,数那么准确干嘛?

大概翻几屏然后行数=n*23,然后到要复制的尾部后,
:-n,. w! /tmp/x1

或者在开始处:^G一下,看一下起始行数。
然后光标移到尾部,
: ???,. w! /tmp/x1


象楼上说的也蛮好,
:n1,n2 w! /tmp/x1

 sdccf 回复于:2004-01-14 16:10:34
[quote:1e9c36af8a="jxp2002"]
请saintdragon"把功能把此功能,r命令写全,多谢谢![/quote:1e9c36af8a]


:r file即可。

 hseng 回复于:2004-01-14 17:25:43
正需要!!!来的正是时候!!!

试了一下这样也行 

"a5yy                       (file1 5 lines into a) 
:e file2                     (open file2 edit) 
"ap                          (copy ) 
rew                        (return to file1 ) 
                             (怎样又回到file2 ???)

 hseng 回复于:2004-01-14 17:55:26
不同屏的好象没有什么方法是吧?

 海德 回复于:2004-01-14 19:33:50
:P

 htldm 回复于:2004-01-14 20:22:49
真正的精华文章

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网