Vim 暫存器


建立時間: 2023年4月15日 18:00
更新時間: 2023年9月18日 08:40

說明

暫存器(Register)是一個用來保存文本片段的記憶體區域。就好像變數存取的資料,又或者說是記事本暫時保存的內容,在很多默認情況下都會將內容儲存在暫存器,例如:刪除、複製、文件名等等,本篇將分享暫存器常用的觀念。

十種類型的暫存器

  1. 無名暫存器 ""
  2. 10 個編號暫存器 "0"9
  3. 行內刪除暫存器 "-
  4. 26 個命名的暫存器 "a"z 或者 "A"Z
  5. 三個只讀暫存器 ":"."%
  6. 輪換緩衝區暫存器 "#
  7. 表達式暫存器 "=
  8. 選擇和拖放暫存器 "*"+"~
  9. 黑洞暫存器 "_
  10. 最近搜索模式暫存器 "/

暫存器指令

普通指令

"{register}<command>

使用 " 搭配暫存器名稱,接著輸入指令。

有時候你會看到 ["x]<command>,像是 ["x]p["x] 代表任意暫存器。

範例

"1p

貼上編號1的暫存器內容。


ex 指令

指令 動作
:reg[isters] 顯示所有暫存器的類型和內容。
:reg[isters] {arg} 显示 {arg} 暫存器的内容。{arg} 裡可以用空格。

範例

指令 動作
:reg 1a 顯示暫存器 1a

特殊符號

暫存器清單有些按鍵使用特殊符號表示

符號 按鍵
^[ Esc
^M Enter

1. 無名暫存器

命名: ""

dcsx 等命令刪除或者用 y 等抽出命令複製的文本都被 Vim 用來填充該暫存器。

2. 編號暫存器

命名: "0"9

Vim 把抽出和刪除命令的文本保存在這些暫存器裡。

編號暫存器 0 包含最近抽出的文本。

編號暫存器 1 包含了最近刪除或者修改的文本,每來一次新的刪除和修改,Vim 把前一次的暫存器 1 的內容複製到暫存器 2,2 到 3,依此類推。而暫存器 9 的內容就丟失了。

你可以使用 "1p 貼上最近刪除的內容,假如你想貼上的內容是上上一次刪除的內容,你可以使用 u 還原,在使用 . 重複 "1p 命令,這樣重複循環你就可以遍歷所有編號暫存器。

  • "1pu.u.u 遍歷貼上編號暫存器。

4. 命名暫存器

命名: "a"z"A"Z

Vim 只有在你指定的時候才使用這些暫存器。指定為小寫字母時替換原來的內容,指定為大寫字母時附加到原來的內容。

範例

abc
def
ghi

假設我在上面文本 abc 那行輸入 "xdd 刪除 abc 那行

接著我輸入 :reg,找到 "x 暫存器的內容如下

Type Nmae Content
l "x abc^J

接著我在 def 那行輸入 "Xdd 刪除 def 那行。

接著我輸入 :reg,找到 "x 暫存器的內容如下。

Type Nmae Content
l "x abc^Jdef^J

def 的內容附加到 "x 暫存器裡。

接著我在 ghi 那行輸入 "xdd 刪除 ghi 那行。

接著我輸入 :reg,找到 "x 暫存器的內容如下。

Type Nmae Content
l "x ghi^J

ghi 的內容替換原來 "x 暫存器的內容。

5. 只讀暫存器

顧名思義這是唯讀的暫存器

名稱 用途
": 包含最近執行過的命令行
". 包含最近插入的文本
"% 包含當前文件名

9. 黑洞暫存器

命名: "_

當寫到這個寄存器時,什麼都不會發生。這可以用來刪除文本,而不影響任何正常的暫存器。從該暫存器讀時,什麼都不會返回。

例如:"_dd 刪除一行,但 "" 無名暫存器沒有被更新。

觀看次數: 1295
registerregistersvim暫存器
按讚追蹤 Enjoy 軟體 Facebook 粉絲專頁
每週分享資訊技術

一杯咖啡的力量,勝過千言萬語的感謝。

支持我一杯咖啡,讓我繼續創作優質內容,與您分享更多知識與樂趣!