Vim 的缓冲区与多文件编辑
下图中包含了 Vim 中的 buffer、窗口、的关系。初学者会对这三个概念容易混淆。下面几节我们会依次为大家讲解。本节我们会首先讲解下 buffer(缓冲区)的概念。
A buffer is an area of Vim’s memory used to hold text read from a file. In addition, an empty buffer with no associated file can be created to allow the entry of text. –vim.wikia ——官网
这里引用的是官网一段对于 Vim 缓冲区的解释。说白了,buffer 就是 Vim 开辟的一块内存,用于存放从中读取的文本。
1. 缓冲区
我们在编辑时候,本质上其实是在内存的映像。就是我们说的缓冲区。而是需要存储在磁盘上的。所以我们编辑完后通过 :w 写入磁盘后才叫。
buffer 有三种状态:
active: 这种状态buffer 在当前窗口。
hidden: 这种状态buffer是隐藏的。
inactive: 这种状态buffer 既也不包含任何东西。
我们可以同时"编辑多个(缓冲区)",我们可以些缓冲区中切换使用。
我们可以通过三种命令展示缓冲区列表:
:files
:buffers
:ls
:buffers 1 %a "main.tf" line 1 2 "jmx_exporter.json" line 0 3 "bind_exporter.json" line 0 :ls 1 %a "main.tf" line 1 2 "jmx_exporter.json" line 0 3 "bind_exporter.json" line 0 :files 1 %a "main.tf" line 1 2 "jmx_exporter.json" line 0 3 "bind_exporter.json" line 0
这里可以看到三个命令结果都一样的。我们具体看下结果展示各个部分的意思。
这里有点难理解的是指示状态:
- 只读缓冲区
a 活动缓冲区,当前在屏幕上的
h 隐藏缓冲区
% 当前的缓冲区
# 交换缓冲区
+ 已经更改的缓冲区
下面我会依次演示上面的操作:
1.2.1 移动操作
我们先来看下缓冲区如何进行移动操作:
1.2.2 增删操作
这里我们演示一下如何或缓冲区:
2. 小结
以上就是 Vim buffer 讲解。这个会和之后的概念相似。可以简单理解为 buffer 主内(内部表示),主外(外部窗口布局展示)。初学者会容易混淆具体会在后面部分讲解。