亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

Vim 寄存器

寄存器這個概念,在之前的Vim復制、刪除章節已經和大家提過。想必大家應該還有印象。我們根據那節場景講了無名寄存器和復制專用寄存器。本節,我們就更加深入了解寄存器的概念和使用場景。

1. 寄存器概念

Vim 中的寄存器簡單來說就是用于保存文本的容器。我們對不同場景劃分了不同的寄存器,或者說容器。主要用于 Vim 使用中臨時保存一些數據。

之前章節中我們我們提到過這個概念,并且對 Windows 和 Vim 編輯器之間不同點做了對比。它們之間最大不同就在于寄存器的概念。Vim 分門別類地劃分了幾十組不同的寄存器或者容器來臨時保存文本。Windows 系統只使用單一的剪切板。

1.1 寄存器常用種類

Vim 寄存器有很多種,這里我們只會講解四種常用的寄存器。其他大家可以在 Vim help(:h reg)中了解即可。

類型 含義 表達式 舉例 特點
無名寄存器 默認寄存器 “” “” p = p 會被最后一條覆蓋
數字寄存器 "+{0-9}緩存最近10次操作 “{0-9} "1P 0是復制專用,1-9用于常規刪改記錄
有名寄存器 26個英文字母命名 "[a-z]/[A-Z] "ayw 賦予具體字母名字
黑洞寄存器 有去無回 "_ "_dw 只刪除不保存,相當于windows 中的刪除

2. 實戰案例

寄存器使用相關命令:

命令 含義
:reg 查看所有寄存器
:reg 寄存器名字 查看具體寄存器

使用寄存器:"{reg_類型}+命令: 無論是存入寄存器還是引用寄存器內容都是這個公式。我們來具體看下。

2.1 無名寄存器

這個是默認寄存器,顧名思義就是沒有名字。使用雙引號表示——"".我們的刪除、復制等操作都默認存在這里。當然復制除了默認存在無名寄存器還會存入專用的復制寄存器,后面會提到。

刪除操作

可以看到當我們刪除了resource 后,通過查看寄存器可以看到在無名寄存器 ——""中包含了我們刪除的字符串resource。

復制操作

可以看到當我們復制字符串dataspace后,再查看寄存器時候發現兩個變化:

  • 首先無名寄存器中之前存入的 resource 被 dataspace 覆蓋了。
  • 可以看到數字0寄存器也變成了 dataspace。這就是我們之前說的復制專用寄存器。

2.2 數字寄存器

除了剛才的數字 0 寄存器(也叫復制寄存器)之外,還有其他九個數字寄存器[1-9]。這就等于給寄存器編了個號碼,類似于人的身份證號一樣。

特點: 當刪除一整行時候

  • 數字1:最近刪除的文本
  • 數字2:存放倒數第二刪除的文本

刪除一整行場景

可以看到數字寄存器內容會按照刪除行順序倒序。需要注意的是只有刪除整行才會這樣。大家可以自己試試看刪除單個單詞會出現這樣的情況么?

2.3 有名寄存器

這就相當于給寄存器起了個名字。只不過名字比較簡單 [a-Z]。場景和邏輯都比較簡單。下面我們來看下演示:

可以看到我們給每個刪除操作都分門別類取了個名字。這樣就可以按需提取使用了。

黑洞寄存器

這個看名字就很容易理解。指定到這個寄存器的內容是有去無回的。真正意義上的刪除。

使用黑洞寄存器后,我們可以通過 reg 命令查看寄存器內容。可以看到所有的寄存器都不存在env 內容,也就是說通過寄存器已經直接刪除了。

3. 小結

以上就是寄存器的主要內容,如果大家看過 Vim 幫助的話。會發現還有很多其他的寄存器。這里只是涉及最常用的寄存器?;究梢詽M足大家日常使用需要。其他更高級的寄存器,大家可以自行查看使用。