《Vim實用技巧(第2版)》——第1章 Vim解決問題的方式 1.1認識 . 命令
本節書摘來自異步社區《Vim實用技巧(第2版)》一書中的第1章,第1.1節,作者:【英】Drew Neil(尼爾)著,更多章節內容可以訪問雲棲社區“異步社區”公眾號查看
1.1 認識 . 命令
. 命令可以讓我們重複上次的修改,它是Vim中最為強大的多麵手。
Vim文檔隻是簡單地提到 . 命令會“重複上次修改”(參見),這聽起來沒什麼特別,但在這個簡單的說明裏,我們會發現讓Vim區分模式的編輯模型如此高效的核心原因。首先我們要問:“究竟什麼是修改?”
要理解 . 命令的強大,我們需要意識到這一點:“上次修改”可以指很多東西,一次修改的單位可以是字符、整行,甚至是整個文件。
我們將使用下麵這段文本進行說明。
the_vim_way/0_mechanics.txt
Line one
Line two
Line three
Line four
x
命令會刪除光標下的字符,在這種情況下使用 . 命令“重複上次修改”時,就會讓Vim刪除光標下的字符。
我們可以輸入幾次 u 撤銷上述修改,使文檔恢複到初始狀態。
dd
命令也做刪除操作,但它會把整行一起刪掉。如果在 dd 後使用 . 命令,那麼“重複上次修改”會讓Vim刪除當前行。
最後,>G
命令會增加從當前行到文檔末尾處的縮進層級。如果在此命令後使用 . 命令,那麼“重複上次修改”會讓Vim增加從當前行到文檔末尾的縮進層級。在下例中,讓光標從第二行開始,以便一目了然地看出差別。x
、dd
以及>
命令都是在普通模式中執行的命令,不過,每次進入插入模式時,也會形成一次修改。從進入插入模式的那一刻起(例如,輸入i
),直到返回普通模式時為止(輸入<Esc>
),Vim會記錄每一個按鍵操作。做出這樣一個修改後再用 . 命令的話,它將會重新執行所有這些按鍵操作(參見技巧8中的在插入模式中移動光標會重置修改狀態部分中的補充說明)。
. 命令是一個微型的宏
在第11章“宏”中,我們將看到Vim可以錄製任意數目的按鍵操作,然後在以後重複執行它們。這讓我們可以把最常重複的工作流程錄製下來,並用一個按鍵重放它們。可以把 . 命令當成一個很小的宏(macro)。
最後更新:2017-06-06 07:38:23