vim作为一个强大的,可靠的文本编辑器,普及程度十分高,但,如果从实用性来说,会劝退一大波人。如果能够用上手,相信没有几个人能够拒绝vi(vim)的诱惑。
那么,vim的进阶操作---寄存器是一个什么样的存在呢?什么是寄存器?寄存器如何使用?寄存器存在的意义是什么?
以上问题,我相信看完本人的介绍,每个人都会有一个统一的答案了。
一,vim的寄存器是什么?
寄存表示的是存放,其中有一个临时的存放的意思,器表示容器。那么,存放的是什么东西呢?存放的是vim内的复制黏贴的内容,系统剪切板的内容,而这些内容,我们不仅可以看到,还可以取出来(黏贴到别的地方),还可以调整哪些内容可以存放到这个容器里,哪些内容可以删除出这个容器。
总的来说,说人话,寄存器就是一个可自定义的多重剪切板,超级剪切板(这么理解绝对没有问题)。
vim共有9类寄存器:
- 无名(unnamed)寄存器:
""
,缓存最后一次操作内容; - 数字(numbered)寄存器:
"0 - "9
,缓存最近操作内容,复制与删除有别; - 行内删除(small delete)寄存器:
"-
,缓存行内删除内容; - 具名(named)寄存器:
"a - "z
或"A - "Z
,指定时可用; - 只读(read-only)寄存器:
":, "., "%, "#
,分别缓存最近命令、最近插入文本、当前文件名、当前交替文件名; - 表达式(expression)寄存器:
"=
,只读,用于执行表达式命令; - 选择及拖拽(selection and drop)寄存器:
"*, "+, "~
,存取GUI选择文本,可用于与外部应用交互,使用前提为系统剪切板(clipboard)可用; - 黑洞(black hole)寄存器:
"_
,不缓存操作内容(干净删除); - 模式寄存器(last search pattern):
"/
,缓存最近的搜索模式。
二,如何使用寄存器(寄存器的入口按键是 英文的 " 双引号, 这里一定要注意~~~~~~)
(1)查看寄存器里的内容:
打开一个即将要编辑的文本文档,命令行模式,输入reg即可。
(2)寄存器里的内容的改变规则
- 无名(unnamed)寄存器:
""
,缓存最后一次操作内容; - 数字(numbered)寄存器:
"0 - "9
,缓存最近操作内容,复制与删除有别; - 数字寄存器不可以被自定义的具名也就是字母寄存器替代。
- 具名也就是字母寄存器存在的意义是固化需要频繁剪切的内容,不会因为操作频繁被覆盖。
(3)如何自定义寄存器和使用寄存器?
自定义:
"要定义的字母寄存器的字母 剪切动作
比如:
正常模式下,键盘上按 "t4yy 这几个按键连续按完后就是复制了4行内容到 具名为t的寄存器里了。
使用:
打开另一个文本文件,或者是打开一个新的文本文件,在正常模式下,"tp 就可以黏贴上一个文本文档里复制出来的4行内容到这个文件内了。
三,寄存器的意义
首先,寄存器是可以跨文本文件使用的,只有有剪切动作都会自动记录到0-9数字寄存器,而这些寄存器是动态的,会变化的,如果操作动作很多,有一些操作是需要频繁使用的,那么,使用自定义具名寄存器会大大的提高我们的效率,因为字母寄存器是不会改变的,除非你删除了这个寄存器。
再次,我们如果有某些文件误修改了,或者有非法入侵,如果恶意闯入者没有删除所有寄存器的内容,我们有可能追踪到它的修改轨迹。
最后,多说一句,寄存器的生命周期是很长的,即使服务器重启什么的,只要能正常进入系统,寄存器里的内容都是一直存在的。