【转】vi编辑器中如何复制粘贴文本

时间:2024-03-09 12:13:28
转自:http://old.blog.edu.cn/user2/icethawless/archives/2006/1489681.shtml

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

列子: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

vi编辑器中如何复制粘贴文本

用了很久vi,一直不知道怎么使用剪贴功能。昨天补了一下课:

在GUI下:可按i进入插入模式,使用鼠标拖动反选要粘贴的内容,将光标移到要粘贴处,按鼠标中键(两键鼠标可同时按左右键)。

在纯文本终端下:
选定文本块,使用v
复制选定块到缓冲区,使用y
复制整行,用yy
在同一编辑窗打开第二个文件,用:sp [filename]
在多个编辑文件之间切换,用^ww
剪切块,用d
剪切整行用dd
粘贴缓冲区中的内容,用p
命令前面加数字表示重复次数,加字母表示使用的缓冲区名称。
获取帮助,用:help [内容或命令]


















在vi编辑器有一个寄存器的概念(concept of register),正是这个概念使我们可以进行多次的剪切和粘贴操作。在一般的编辑器中我们被限制只有一个剪切板可用,而在vi中最多时可以有26个剪切板供使用,这样就会大大的提高工作的效率。

在 vi中,我们可以使用d或x来删除文本,但是经过这样操作所删除掉的文本并没有被vi所丢弃,而是被保存起来。我们可以使用p命令来粘贴刚刚所删掉的内 容。下面来看看他是如何工作的。首先在vi中随意的输入几行,然后移动到其中的一行,用dd命令来删掉一行。如何叫他再回来?我们可以将光标移到任意的地 方,然后用p命令,就会看到刚才被删除掉的内容又回来了。

使用x命令删除的东西也可以粘贴回来。所不同的是,用dd删除一行再用p命令 时是在当前光标的下一行粘贴,而删除一个单词再用p命令来粘贴时是在当前光标处粘贴。有了这样的命令,我们就可以来处理输入错误的单词了。例如我们不小心 将the输入成了teh,这时可以将光标移到e的位置,用x命令删掉,再用p命令粘贴回来,这时就会发现输入正是我们想要的了。

p命令可以在一个文件中使用几次,每一次都可以将刚删除的内容重新粘贴在所希望的地方。当然这个命令也可以使用数字做前缀,明确的指出所要执行的次数。

当 我们插入文本行时,可以使用p命令或是P命令。所不同的是,p命令是在当前行的下一行进行插入,插入后光标移动到新行的开头处。而P命令是在当前的上一行 进行插入,插入后光标移到新行的下一行的开头处。我们还可以使用gp或gP命令。不同的是,gp命令是将光标移动到新行的下一行的开头处。而gP是在当前 的上一行进行插入,插入后光标移动新行的下一行的开头处。

在vi中y命令也可以进行复制操作。yw命令可以复制一个单词。yy命令可以 复制一行,然后我们可以用p命令来粘贴。我们也可以使用Y命令来复制一行,或是用数字做前缀来明确的指明复制几行,然后用p命令粘贴到我们所希望的地方。 y$命令可以复制从当前光标到本行结尾的所有字符。

使用标记

在使用vi进行编辑时,我们可以对某一行进行标记。将光标移到某一行,用命令ma来进行标记。在这里m是标记的命令,a是对这一行所做标记的名称,当然也可以使用26个字母中的任意一个做为标记名称。

在做了标记以后,我们可以用\'a命令快速移到刚才所做标记的那一行的行首。这里\'是单引号。也可以使用`a来移到所做标记时的光标所在位置,这里`是反引号(也就是数字键1左边的那一个)。

我们可以用:marks命令列出所有的标记。这其中也包括一些特别的标记(Special marks)。

如果我们将做了标记的那一行删除,那么所做的标记也就不存了。我们用标记不仅可以快速的移到做了标记的行,而且还可以用标记来删除掉一行,例如在某一行用ma做了标记,然后就可以用d\'a来删掉这一行。我们也可用y\'a命令就可以来复制这一行了。