vim 錄製巨集,自動迴圈執行組合操作

2022-03-27 10:33:01 字數 1543 閱讀 1253

在 vim 中錄製巨集的意思就是把一段操作錄製下來,然後可以重複執行。打個比方,我有乙個文字,一共 50000 行,我要在每一行後面加乙個英文句號。這個操作如果手動做的話效率非常低。這時候我可以這樣,在每一行後面加乙個英文句號,然後讓 vim 自動重複執行這個操作,這是非常有規律的。

要在一行後面加英文句號的操作有兩種主要方法

第一種,在 normal 模式下,執行:

$a.

操作演示:

第二種,在 normal 模式下,執行:

a.

操作演示:

我們在使用 vim 的時候,有時候一不小心在 normal 模式下按到 q ,然後再按乙個鍵(比如 t)的時候左下角會出現乙個recording @t,這其實就開啟了巨集錄製,你接下來的 vim 內操作全部都會被記錄,直到你再次按下 q 的時候,巨集就錄製完成了,我們暫且稱之為:巨集儲存在 t 暫存器中,你想使用那一段巨集的時候,只需要按下@t就可以了,如果你要迴圈 100 次數,就執行100@t,如果想使用其他的鍵(比如 abcd)也是可以的。

操作分解:

vim test

用 vim 開啟乙個名為 test 的檔案,它裡面已經有 50000 行內容了

我在檔案的頂部加了乙個空行,這樣子做是因為我想要迴圈執行在每一行後面加句號這個動作,那我得一行行銜接下去,所以我把游標一開始定位在那個空行裡面,這樣我的第乙個動作就是要到下一行,這樣我就可以迴圈往下執行了

qt

開啟巨集錄製,我用的還是 t ,開啟錄製之後,左下角出現了recording @t的字樣,說明已經開始錄製了。然後我就先到下一行,然後在末尾加了乙個句號,最後再次按下 q 鍵,錄製完畢,這樣我的巨集就做好了,t 暫存器裡面儲存的操作就是:

下一行 -> 游標定位到行尾 -> 進入 insert 模式 -> 輸入句號 -> esc

翻譯成 vim 的操作就是:

j$a.

ja.

現在就可以呼叫了,我呼叫了三次

10@t

100@t

1000@t

我先迴圈呼叫 10 次巨集,來試一下錄製的對不對,發現錄製正確之後,再呼叫了 100 次,也是完全正確的,最後我呼叫了 1000 次,執行有點慢,cpu 被吃了很多,但還是正確執行了。其實我們可以在巨集的錄製中給 10 行加句號,這樣呼叫 1000 次會快一點,我這裡只是演示而已,就不去折騰了。

vim 錄製巨集,自動迴圈執行組合操作

在 vim 中錄製巨集的意思就是把一段操作錄製下來,然後可以重複執行。打個比方,我有乙個文字,一共 50000 行,我要在每一行後面加乙個英文句號。這個操作如果手動做的話效率非常低。這時候我可以這樣,在每一行後面加乙個英文句號,然後讓 vim 自動重複執行這個操作,這是非常有規律的。要在一行後面加英...

vim 修改vim錄製的巨集

來自此部落格 二 修改巨集 可以使用以下方式修改vim暫存器a中的巨集 1 先按 g 跳轉到檔案末尾,然後按 o 新加一行後直接用 esc 退出到命令列模式 2 使用命令 ap 將暫存器a中的命令巨集貼上到當前位置,然後編輯這一行的巨集內容,編輯結束後用 0 回到行首 3 使用命令 ayy 將當前行...

Vim 筆記整理(4) 巨集錄製

我們知道.命令對重複小的修改確實有效,但想到重複更大規模的改動時,vim的巨集就派上用場了。巨集很適合對一系列相似的行 段落,甚至檔案,進行重複性修改。在錄製命令序列的過程中難免會出錯,不過用不著推翻重來,因為可以很方便地在原有巨集的結尾附加新的命令。就像黑白棋遊戲一樣,學習vim的巨集只需一分鐘,...