vi复制粘贴(转贴+本身总结)

 

 你们在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 字母 用字母标记当前行,之后可用 '字母使光标移动到当前行,  
(参看'命令) 

例子:windows

单个文件中的复制粘贴:命令行

方法1:unix

光标放到第6行,
输入:2yy
光标放到第9行,
输入:p
此方法适合复制少许行文本的状况,复制第6行(包括)下面的2行数据,放到第9行下面。


方法2:
命令行模式下输入
6,9 co 12
复制第6行到第9行之间的内容到第12行后面。


方法3:
有时候不想费劲看多少行或复制大量行时,可使用标签来替代

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

而后 :'a,'b co 'c 把 co 改为 m 就成剪切了


要删除多行的话,能够用 :5, 9 de终端

 

 

多个文件的复制粘贴:方法

 

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命名