Vim 暫存器
分類
說明
暫存器(Register)是一個用來保存文本片段的記憶體區域。就好像變數存取的資料,又或者說是記事本暫時保存的內容,在很多默認情況下都會將內容儲存在暫存器,例如:刪除、複製、文件名等等,本篇將分享暫存器常用的觀念。
十種類型的暫存器
- 無名暫存器
""
- 10 個編號暫存器
"0
到"9
- 行內刪除暫存器
"-
- 26 個命名的暫存器
"a
到"z
或者"A
到"Z
- 三個只讀暫存器
":
、".
和"%
- 輪換緩衝區暫存器
"#
- 表達式暫存器
"=
- 選擇和拖放暫存器
"*
、"+
和"~
- 黑洞暫存器
"_
- 最近搜索模式暫存器
"/
暫存器指令
普通指令
"{register}<command>
使用 "
搭配暫存器名稱,接著輸入指令。
有時候你會看到 ["x]<command>
,像是 ["x]p
,["x]
代表任意暫存器。
範例
"1p
貼上編號1的暫存器內容。
ex 指令
指令 | 動作 |
---|---|
:reg[isters] |
顯示所有暫存器的類型和內容。 |
:reg[isters] {arg} |
显示 {arg} 暫存器的内容。{arg} 裡可以用空格。 |
範例
指令 | 動作 |
---|---|
:reg 1a |
顯示暫存器 1 和 a |
特殊符號
暫存器清單有些按鍵使用特殊符號表示
符號 | 按鍵 |
---|---|
^[ | Esc |
^M | Enter |
1. 無名暫存器
命名: ""
用 d
、c
、s
、x
等命令刪除或者用 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
刪除一行,但 ""
無名暫存器沒有被更新。
一杯咖啡的力量,勝過千言萬語的感謝。
支持我一杯咖啡,讓我繼續創作優質內容,與您分享更多知識與樂趣!