一.寄存器分类
1.无名(unnamed)寄存器:"",缓存最后一次操作内容;即复制(yy等)或删除(dd等)文本存放的地方,如果直接执行粘贴p(未指定任何寄存器),则直接从此寄存器读取数据并粘贴。
2.数字(numbered)寄存器:"0 ~"9,缓存最近操作内容,复制与删除有别:
"0 寄存器缓存最近一次不指定寄存器复制(如yy,2yy,3yy…)的内容,(yy,2yy,3yy操作后“”与“0寄存器里的内容都是相同的)
"1-"9寄存器 缓存最近9次删除内容。1最新,9最旧,由vim自动维护,而且由于超过9个删除时顺序会发生变化。因此我觉得我们一般不必记得”1-“9存了什么内容,也难以记住。使用前可以通过:reg查一下寄存器的内容再选择操作。
(要读取这些寄存器进行粘贴,使用“np,如”0p,“1p)
3.行内删除(small delete)寄存器:"-,缓存行内删除(如x,2x,3x等)内容;
(要读取这些寄存器进行粘贴,使用“-p)
4.具名(named)寄存器:"a ~ "z或"A – "0Z,指定时可用;我平时习惯用mk作标记,然后光标移到某行使用”ay'k复制,这里的a就是寄存器a,然后用“ap粘贴。
(同一个字母的大写和小写表示的是同一个寄存器,但是行为会不同,字母寄存器的名称大写时,当使用大写的寄存器进行复制或者删除文本时,原先的字母寄存器中的内容会被保留,刚删除或复制的内容则附加到原来字母寄存器内容的后面。 字母寄存器只有在指定时才被使用。)
5.只读(read-only)寄存器:":,".,"%,"#,分别缓存最近命令、最近插入文本、当前文件名、当前交替文件名;
6.表达式(expression)寄存器:"=,只读,用于执行表达式命令;不常用,反正我没用过。
7.选择及拖拽(selection and drop)寄存器:"*,"+,"~,存取GUI选择文本,可用于与外部应用交互,使用前提为系统剪切板(clipboard)可用;不常用。
8.黑洞(black hole)寄存器:"_,不缓存操作内容(干净删除);不常用
9.模式寄存器(last search pattern):"/,缓存最近的搜索模式。我们用/或?搜索时会将搜索字符串存到此寄存器。
(助记:调用寄存器方式为“+寄存器名,如”0,"a,"%等)
二. 查看寄存器内容
:reg 查看所有寄存器内容
:reg 寄存器名 查看单个寄存器内容 比如 :reg _ :reg * :reg 1 :reg 9 :reg a 等等
三. 总结
命令难以记住,除了摸清规律外,最好的方法是多操作,这样印象是最深的。好像我自己,有时让我说用什么命令我说起来很陌生,但假如要我操作却可以很熟练地打出来。这就是感觉吧!关于vim寄存器还有很多功能,比如赋值,计算等,但我觉得那些不常用,因此也不写了,有兴趣的同学网上搜搜吧。