vim的寄存器详解
  TEZNKK3IfmPf 2023年11月14日 26 0

vim作为一个强大的,可靠的文本编辑器,普及程度十分高,但,如果从实用性来说,会劝退一大波人。如果能够用上手,相信没有几个人能够拒绝vi(vim)的诱惑。

那么,vim的进阶操作---寄存器是一个什么样的存在呢?什么是寄存器?寄存器如何使用?寄存器存在的意义是什么?

以上问题,我相信看完本人的介绍,每个人都会有一个统一的答案了。

一,vim的寄存器是什么?

寄存表示的是存放,其中有一个临时的存放的意思,器表示容器。那么,存放的是什么东西呢?存放的是vim内的复制黏贴的内容,系统剪切板的内容,而这些内容,我们不仅可以看到,还可以取出来(黏贴到别的地方),还可以调整哪些内容可以存放到这个容器里,哪些内容可以删除出这个容器。

总的来说,说人话,寄存器就是一个可自定义的多重剪切板,超级剪切板(这么理解绝对没有问题)。

 

vim共有9类寄存器:

  1. 无名(unnamed)寄存器:"",缓存最后一次操作内容;
  2. 数字(numbered)寄存器:"0 - "9,缓存最近操作内容,复制与删除有别;
  3. 行内删除(small delete)寄存器:"-,缓存行内删除内容;
  4. 具名(named)寄存器:"a - "z"A - "Z,指定时可用;
  5. 只读(read-only)寄存器:":, "., "%, "#,分别缓存最近命令、最近插入文本、当前文件名、当前交替文件名;
  6. 表达式(expression)寄存器:"=,只读,用于执行表达式命令;
  7. 选择及拖拽(selection and drop)寄存器:"*, "+, "~,存取GUI选择文本,可用于与外部应用交互,使用前提为系统剪切板(clipboard)可用;
  8. 黑洞(black hole)寄存器:"_,不缓存操作内容(干净删除);
  9. 模式寄存器(last search pattern):"/,缓存最近的搜索模式。

二,如何使用寄存器(寄存器的入口按键是 英文的 "   双引号, 这里一定要注意~~~~~~

(1)查看寄存器里的内容:

打开一个即将要编辑的文本文档,命令行模式,输入reg即可。

vim的寄存器详解

vim的寄存器详解 

(2)寄存器里的内容的改变规则

  1. 无名(unnamed)寄存器:"",缓存最后一次操作内容;
  2. 数字(numbered)寄存器:"0 - "9,缓存最近操作内容,复制与删除有别;
  3. 数字寄存器不可以被自定义的具名也就是字母寄存器替代。
  4. 具名也就是字母寄存器存在的意义是固化需要频繁剪切的内容,不会因为操作频繁被覆盖。

(3)如何自定义寄存器和使用寄存器?

自定义:

"要定义的字母寄存器的字母 剪切动作

比如:

正常模式下,键盘上按  "t4yy  这几个按键连续按完后就是复制了4行内容到 具名为t的寄存器里了。

使用:

打开另一个文本文件,或者是打开一个新的文本文件,在正常模式下,"tp 就可以黏贴上一个文本文档里复制出来的4行内容到这个文件内了。

三,寄存器的意义

首先,寄存器是可以跨文本文件使用的,只有有剪切动作都会自动记录到0-9数字寄存器,而这些寄存器是动态的,会变化的,如果操作动作很多,有一些操作是需要频繁使用的,那么,使用自定义具名寄存器会大大的提高我们的效率,因为字母寄存器是不会改变的,除非你删除了这个寄存器。

再次,我们如果有某些文件误修改了,或者有非法入侵,如果恶意闯入者没有删除所有寄存器的内容,我们有可能追踪到它的修改轨迹。

最后,多说一句,寄存器的生命周期是很长的,即使服务器重启什么的,只要能正常进入系统,寄存器里的内容都是一直存在的。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年05月31日   18   0   0 vim
  TEZNKK3IfmPf   2024年05月31日   51   0   0 linux服务器
  TEZNKK3IfmPf   2024年05月31日   29   0   0 linux服务器centos
  TEZNKK3IfmPf   2024年05月31日   29   0   0 linuxbind
  TEZNKK3IfmPf   2024年05月31日   39   0   0 linuxshell
TEZNKK3IfmPf