第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

首頁 慕課教程 Vim 編輯器教程 Vim 編輯器教程 10 Vim 的緩沖區(qū)與多文件編輯

Vim 的緩沖區(qū)與多文件編輯

下圖中包含了 Vim 中的 buffer、窗口、標(biāo)簽的關(guān)系。初學(xué)者會(huì)對(duì)這三個(gè)概念容易混淆。下面幾節(jié)內(nèi)容我們會(huì)依次為大家講解。本節(jié)我們會(huì)首先講解下 buffer(緩沖區(qū))的概念。

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 ——官網(wǎng)

這里引用的是官網(wǎng)一段對(duì)于 Vim 緩沖區(qū)的解釋。說白了,buffer 就是 Vim 開辟的一塊內(nèi)存,用于存放從文件中讀取的文本內(nèi)容。

1. 緩沖區(qū)

我們?cè)诰庉嬑募r(shí)候,本質(zhì)上其實(shí)是文件在內(nèi)存的映像。就是我們說的緩沖區(qū)。而文件是需要存儲(chǔ)在磁盤上的。所以我們編輯完文件后通過 :w 寫入磁盤后才叫文件。

buffer 有三種狀態(tài):

  • active: 這種狀態(tài)buffer 顯示在當(dāng)前窗口。
  • hidden: 這種狀態(tài)buffer是隱藏不顯示的。
  • inactive: 這種狀態(tài)buffer 既不顯示也不包含任何東西。

1.1 緩沖區(qū)列表

我們可以同時(shí)"編輯多個(gè)文件(緩沖區(qū))",我們可以在這些緩沖區(qū)中切換使用。

我們可以通過三種命令展示緩沖區(qū)列表:

  • :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

這里可以看到三個(gè)命令結(jié)果都一樣的。我們具體看下結(jié)果展示各個(gè)部分的意思。

第一列 第二列 第三列 第四列
緩沖區(qū)序列號(hào) 指示狀態(tài) 文件名 光標(biāo)位置

這里有點(diǎn)難理解的是指示狀態(tài):

  • - 只讀緩沖區(qū)
  • a 活動(dòng)緩沖區(qū),當(dāng)前顯示在屏幕上的
  • h 隱藏緩沖區(qū)
  • % 當(dāng)前的緩沖區(qū)
  • # 交換緩沖區(qū)
  • + 已經(jīng)更改的緩沖區(qū)

1.2 緩沖區(qū)列表操作

指令 含義
:bp[revious] 上一個(gè)緩沖區(qū)
:bn[ext] 下一個(gè)緩沖區(qū)
:bf[irst] 到第一個(gè)緩沖區(qū)
:bl[ast] 到最后一個(gè)緩沖區(qū)
:buffer Nubmer/File_name 指定緩沖區(qū)
:ball 編輯所有緩沖區(qū)
:badd add.txt 增加一個(gè)緩沖區(qū)
:bdelete add.txt 刪除一個(gè)緩沖區(qū)
:bufdo %s/pattern/replace/ge | update 多buffer查找替換

下面我會(huì)依次演示上面的操作:

1.2.1 移動(dòng)操作

我們先來看下緩沖區(qū)如何進(jìn)行移動(dòng)操作:

1.2.2 增刪操作

這里我們演示一下如何增加或刪除一個(gè)緩沖區(qū):

2. 小結(jié)

以上就是 Vim buffer 內(nèi)容講解。這個(gè)會(huì)和之后的標(biāo)簽概念相似??梢院?jiǎn)單理解為 buffer 主內(nèi)(內(nèi)部表示),標(biāo)簽主外(外部窗口布局展示)。初學(xué)者會(huì)容易混淆具體會(huì)在后面標(biāo)簽部分講解。