vim中的缓冲区和寄存器有啥区别?

Posted

技术标签:

【中文标题】vim中的缓冲区和寄存器有啥区别?【英文标题】:What is the difference between buffers and registers in vim?vim中的缓冲区和寄存器有什么区别? 【发布时间】:2013-12-08 12:48:58 【问题描述】:

在 vim 中,命令 :reg[ister] 向我显示寄存器列表,而 :ls 显示缓冲区列表,但我不确定寄存器和缓冲区之间的确切区别是什么。我认为寄存器是虚拟内存,与"(double quotation mark)+a-zA-Z0-9.%#:-"+motion一起使用。

那么,什么是缓冲区?到目前为止,我混淆了缓冲区和寄存器。

(我唯一知道的是寄存器在 CPU 中,缓冲区在 RAM 中。我需要明确这两个概念才能很好地使用 vim。

这是我在文档中发现的关于寄存器的内容:

There are nine types of registers:        
1. The unnamed register ""    
2. 10 numbered registers "0 to "9    
3. The small delete register "-    
4. 26 named registers "a to "z or "A to "Z    
5. four read-only registers ":, "., "% and "#    
6. the expression register "=    
7. The selection and drop registers "*, "+ and "~     
8. The black hole register "_    
9. Last search pattern register "/

【问题讨论】:

【参考方案1】:

缓冲区通常是指加载到内存中用于编辑的文件,尽管也有与文件无关的缓冲区。缓冲区的使用允许您同时处理多个文件。

寄存器是一种剪贴板,是可以保存文本的内存空间。有几种寄存器。当您执行某些操作(例如拉动或删除文本)时,其中一些会自动填充。更多信息可以通过键入在帮助中找到 :help registers

【讨论】:

【参考方案2】:

在 vim 中,缓冲区通常指的是打开的文件。它位于 RAM 中,与文件系统中的文件版本相比,可以进行未保存的修改。

您可以同时拥有多个缓冲区(如果您正在编辑多个文件)。 然后你可以使用“bn”/“bp”在它们之间切换,使用“bd”删除一个。

【讨论】:

【参考方案3】:

它们看起来相似但不同:

有一个名为unnamed register (")的寄存器(就像剪贴板一样)

有一个名为[No Name]的缓冲区(包含一个不存在的文件/要写入文件的内容)

一些误用:

【讨论】:

以上是关于vim中的缓冲区和寄存器有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

汇编中 [R1] 和R1有啥区别

ARM指令和THUMB指令有啥区别

vim的共享系统剪贴板以及缩进相关问题

通用寄存器和专用寄存器有啥区别和联系?

重播 vim 宏直到缓冲区结束

arm指令中mov和ldr有啥区别?