首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[转贴]vi中多个文件间复制

[转贴]vi中多个文件间复制

上次有人问道vi在多个文件中的复制问题,今天转帖一份,供参考。

作者:jxp2002
  大家在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

补充:
  set number 显示行号
  set nonu 隐藏行号
  ctrl+G 显示当前行号

  通过临时文件缓存数据
  如果要复制A文件的n1-n2行,把光标移到开始处用:
  :n1,n2 w!/tmp/x1
  然后在B文件中光标移到我要复制的位置:
  :r /tmp/x1

这个版主不太冷 =========================== 我的中电网博客:http://blog.chinaecnet.com/u/20/index.htm
返回列表