VIM基礎概念(暫存器)

2021-06-20 15:31:33 字數 2225 閱讀 1357

**於

現在已經可以熟練使用vim的大多數基本命令、功能來進行專案**的開發了,但是在專案的開發過程中,依然會感覺到一些操作效率比較低,比如通過h/j/k/l來進行游標的大範圍移動這類操作,顯然vim提供了更高效的命令操作方式。最近經常需要完成的工作就是需要在**之間來回的複製、貼上、搜尋和替換,常用的d/y/x/p命令已經顯得不夠,於是學習了一下vim的暫存器功能,使用暫存器的內容緩衝功能可以極大地提高大量複製貼上工作的效率。

暫存器型別

vim中有9種型別的暫存器,暫存器的主要功能就是快取操作過程中刪除、複製、搜尋等的文字內容,通過 :help registers命令檢視暫存器的詳細幫助說明,這裡對型別翻譯如下:

未命名暫存器 ""  —— vim使用的預設暫存器,文字**命令:d/c/s/x/y

10個數字命名暫存器 "0 - "9 —— vim快取yank和delete行操作命令產生的文字

1個非行刪除內容快取暫存器 "- —— vim快取delete操作在非行上時產生的文字

26個字母命名暫存器 "a - "z / "a - "z —— 完全由使用者指定內容的暫存器

4個唯讀暫存器 ". "% "# ":  

表示式暫存器 "= —— 使用vim強大的表示式功能(從來沒用過,一點不懂)

gui選擇暫存器 "* "+ "~ —— vim快取在gui中選擇的文字

黑洞暫存器 "_ —— 類似linux中的/dev/null檔案,只進不出,可用來濾掉影響預設暫存器的內容

最後搜尋模式暫存器 "/ —— 快取在vim中使用過的最後的搜尋內容

這些暫存器很多,那怎麼來檢視它們的內容呢?使用vim的 :registers命令或者短一些的 :dis命令,這兩個命令會列出所有存在的暫存器的內容,然後你就可以選擇指定暫存器的內容進行貼上了。

暫存器使用

注意到上述暫存器的命名前面都有乙個雙引號,這就是使用他們的方式。

在normal模式下操作d/y/x等命令時,通過在命令前面加入暫存器的名字如 "ayy,來將命令生成的內容放入指定的暫存器中,如上面的a暫存器中,而不是vim預設使用的""暫存器和"0暫存器。

貼上時,通過在p命令的前面加入暫存器的名字如 "ap,來將暫存器中的內容放入到游標所在的位置行上或下。

唯讀暫存器、搜尋模式暫存器由vim進行內容放入,使用者只能使用他們的內容。

下面對個人覺得在開發中會比較有用和熟悉的一些暫存器進行具體的說明。

數字暫存器

"0 : 存放最近使用最多的y命令生成的文字內容,如果未顯式指定其內容

"1 - "9 : 存放最近使用的d行操作命令生成的文字內容,如果未顯式指定其內容,並在9個暫存器間對內容進行輪流存放,即有新的內容時,將"1的內容推到"2, 2到3,3到4 ...

字母暫存器

如果你打算將一段內容進行多次長時間的來回拷貝,則最好使用字母暫存器,因為他們的內容被你修改後不會被vim自動修改掉,而數字暫存器的內容隨著新操作的使用會覆蓋掉你指定的內容。

"a - "z : 每次指定這些暫存器之一時,產生的文字內容將覆蓋掉暫存器中原有的內容

"a - "z : 每次指定這些暫存器之一時,產生的文字內容將追加到暫存器中原有的內容之後,如果選項'cpoptions'的值中有》符號,則在追加同時會進行行分割,可以通過命令: :set cpo+=>設定。

唯讀暫存器

". : 包含最後在vim insert模式下插入的文字內容,也可以通過命令 . 重複上一次的操作。

"% : 包含當前檔案的名字,方便在檔案中插入檔名

"# : 包含當前可選擇的檔名,指在當前會話中使用過的檔案的名字

系統剪貼簿

在系統中進行多個應用之間的內容拷貝時,會使用到系統剪貼簿,這可以使用"*,"+暫存器來將內容貼上到vim中,他們也都是唯讀暫存器。除此之外,還可以使用鍵盤快捷鍵shift+insert來快速插入。

暫存器內容設定

除了上面介紹的通過在操作命令前新增暫存器號來指定暫存器的內容外,vim還提供了在命令列顯式指定暫存器內容的命令 :let-@,例如命令 :let @a = "vim registers blog", 表示將"a暫存器內容設定為右值。

貼上模式

在vim中可以通過命令 :set paste來設定貼上模式狀態,此時貼上的內容將可以保持原有的格式不變;通過命令 :set nopaste命令回到正常操作模式。

VIM學習 暫存器

1.檢視暫存器 reg 無名暫存器,進行刪除 複製操作時賦值 0 複製專用暫存器,進行複製操作時賦值 1 9 存放最近使用的剪下,刪除操作的內容 如果未指定編號,9個暫存器會對內容進行輪流存放,即有新的內容時,將 1的內容推到 2,2到3,3到4 8到9,原有9的內容被清除 a z 命名類暫存器,分...

暫存器概念整理

一直以來對暫存器的名稱 作用比較模糊,今天抽時間整理了下。一 通用暫存器 作用 傳送和暫存資料,參與算數和邏輯運算。1 通用暫存器 16位的有8個 ax accumulator bx base cx count dx data bp basepointer sp stack pointer si s...

vim 暫存器 操作 vim操作技巧

不知不覺使用vim已經有一些時間了,也算得上真正掌握使用技巧了吧。想不起來當初為什麼去學習這個編輯器,也不記得怎麼學會使用編輯檔案,只記得當初按完所有的鍵盤按鍵都沒有退出vim。一顆種子要經過多少風雨才能長成參天大樹,一條小溪要經過多少高山河流才能匯入大海。我們平常學習一樣東西,要經過多少困難,多少...