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 刪除一行,但 "" 無名暫存器沒有被更新。
一杯咖啡的力量,勝過千言萬語的感謝。
支持我一杯咖啡,讓我繼續創作優質內容,與您分享更多知識與樂趣!