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

7
在vim中,命令:reg[ister]可以显示寄存器列表,而:ls则显示缓冲区列表,但我不确定寄存器和缓冲区之间的确切区别。我认为寄存器是虚拟内存,并且与"(双引号)+{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 "/
3个回答

13

缓冲区通常指在内存中加载的文件以进行编辑,尽管也有与文件无关的缓冲区。使用缓冲区可以让您同时处理多个文件。

寄存器是一种剪贴板,用于保存文本的内存空间。有几种类型的寄存器。其中一些在执行某些操作时自动填充,例如复制或删除文本。更多信息可以通过键入:help registers来查找帮助。


1

它们看起来很相似,但实际上不同:

有一个叫做未命名寄存器(类似于剪贴板)的寄存器 (")

有一个叫做[无名称]的缓冲区(包含一个不存在文件的内容/将要写入文件的内容)

一些误用:

enter image description here


0
在vim中,缓冲区通常指已打开的文件。它位于RAM中,并且与文件系统中的文件版本相比可能具有未保存的修改。
您可以同时拥有多个缓冲区(如果您正在编辑多个文件)。然后,您可以使用“bn”/“bp”在它们之间切换,使用“bd”删除其中一个。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接