Chinaunix首页 | 论坛 | 博客
  • 博客访问: 179561
  • 博文数量: 60
  • 博客积分: 1597
  • 博客等级: 上尉
  • 技术积分: 461
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-20 13:24
文章分类

全部博文(60)

文章存档

2017年(15)

2016年(6)

2015年(37)

2008年(2)

分类: LINUX

2015-09-11 14:42:48

抛出一个问题:每次打开Vim,想找一段文本来练练手,于是打开网页copy了一段,问题来了,怎样粘贴到vim的编辑器里头去呢?如果你还在CTRL+v的话,说明你还无法割舍Windows,就像东方姑娘忘不了令狐冲):这里暂且告诉你如何粘贴:SHIFT+INSERT 两个键联合起来。再来看下面的原理 

寄存器是Vim用来存储文件的临时空间,当使用命令y(yank)或d(delete)复制删除文本时,该文本就会被保存在寄存器中,通过p(put)命令插入刚删除或复制的内容。vim的寄存器分为不同的种类:

数字寄存器:

在normal模式下输入:reg,您是否看到很多“(双引号)开头的数字了呢,这些都是寄存器,(如果暂时没看到,那么在对文本做几个操作,比如:dd,yy等),这些寄存器里保存了最近删除的和复制的文本。

数字寄存器有十个,分别是:"0,"1,"2... "9(注意:数字前有个双引号),寄存器"0保存上一次复制(y)操作的文本,"1到"9寄存器保存最近9次删除的文本行(注意这个“行”字),"1保存的内容是最最近一次删除的内容(也就是说最后一次执行删除命令保存的内容)"2保存的是倒数第二次删除的内容,依此类推,直到"9,如果又有新的操作,那么"9的内容将会被"8的内容替换,先前”9的内容将被丢弃。 

那么p(put)命令粘贴是哪个寄存器中的内容呢?有时候是粘贴的是"1寄存器的,有时粘贴的是"0寄存器中的,但是总的原则就是粘贴最近一次删除或者复制的内容,如果删除是最近的一次,就是粘贴"1的,也就是粘贴刚刚删除的文本,如果复制是最近的一次操作,那么粘贴的内容是"0中的,也就是粘贴刚刚复制的内容。

字母寄存器:

"a,"b,"c...都是字母寄存器,也许你执行:reg的时候看不到这些命令,不要紧,稍后就有了。之前粘贴我们用的都是p命令,如果我想粘贴其他寄存器里面的内容呢,你想到了吗?答案就是:寄存器的名称+p。现在我们新建一个字母寄存器,把当前三行保存到"a寄存器中去,具体操作如下:在normal模式下输入"a3yy,这样当前三行就保存在"a中去了,粘贴同样在normal模式下,"3p 即可。如果是大写字母的寄存器,如执行:"Cdd:他的作用是把当前行删除,再把内容追加到"c寄存器中,也就是说字母寄存器没有大写之分,只是功能上有区别,大写就是追加,小写是替换

其他寄存器:

"":无名寄存器,p命令粘贴的内容,保存最近一次删除或复制的内容。
“-:(-是个减号)小删除寄存器(small delete register),前面说过要您注意这个”行“字,也就是说并不是所有删除的文本都会保存在数字寄存器中,如果你删除的只是一个单词或字母: dw或者x,那么这个单词并不会保存在"1寄存器中,而是保存在"-寄存器里面。所有不包含换行符的删除都会保存在此寄存器中。

"* :这个就是系统寄存器喽,最开始的问题的第二个答案知道了吧 

当然还有一些寄存器,这里就不一一介绍了。

阅读(591) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~