您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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 主内(内部表示),主外(外部窗口布局展示)。初学者会容易混淆具体会在后面部分讲解。


联系我
置顶