使用 Vim 編輯文件內容時,會經常出現對修改的內容不滿意或者是說沒有必要修改,想把文件改回原來的樣子。或者說將文件內容恢復到原來的內容后,又發現修改的內容更加准確,想撤銷恢復操作,基於這樣的情況,vim編輯器提供了撤銷和恢復的命令。
快捷鍵 |
功能 |
u(小寫) |
undo 的第 1 個字母,功能是撤銷最近一次對文本做的修改操作。 |
Ctrl+R |
Redo 的第 1 個字母,功能是恢復最近一次所做的撤銷操作。 |
U(大寫) |
第一次會撤銷對一行文本(光標所在行)做過的全部操作,第二次使用該命令會恢復對該行文本做過的所有操作。 |
注意,以上這 3 種命令都必須在 Vim 編輯器處於命令模式時才能使用。
下面通過一個例子來演示以上 3 個命令的具體用法。首先,我們新建一個 demo.txt 文件並打開,鍵入一行內容,例如:
http://c.biancheng.net
然后按“Esc”鍵,使 Vim 由輸入模式轉為命令模式,並使用 yy 命令將這一行文本復制到剪貼板中,如此我們就可以在文本任意位置通過鍵入 p(或大寫的 P)命令將復制的內容粘貼到光標所在的位置。
假設我們將光標調整到第一行最后一個字符處,連續按兩次 p 命令(粘貼 2 次),則此時文本中的內容變為:
http://c.biancheng.net
http://c.biancheng.net
http://c.biancheng.net
在此基礎上,通過 u(小寫)命令就可以使文本內容恢復到上一次做粘貼操作之前的樣子,其中“上一次”的含義是,恢復操作是可以疊加的,即按一次就會在現有基礎上做一次恢復操作。
比如,繼續操作 demo.txt 文件,按一次 u,會發現其文本內容變為:
http://c.biancheng.net
http://c.biancheng.net
再按一次 u,文本內容繼續恢復為:
http://c.biancheng.net
同樣,恢復撤銷的操作和撤銷操作是相對應的,通過按 Ctrl+R 組合鍵,可以撤銷之前所做的一次恢復操作。例如,繼續操作 demo.txt 文件,按一次 Ctrl+R,會發現其文本內容恢復為:
http://c.biancheng.net
http://c.biancheng.net
再按一次 Ctrl+R,文本內容又恢復為:
http://c.biancheng.net
http://c.biancheng.net
http://c.biancheng.net
U(大寫)的功能和之前的 2 個命令不同,它的作用是撤銷或恢復撤銷對光標所在行文本所做的全部操作。比如,我們對 demo.txt 文件內容做如下修改:
http://c.biancheng.net
http://c.biancheng.net
網站修改:https:// c.biancheng.net/SuccessAlert
可以看到,這里對第三行文本做了 2 處修改(紅色加粗標注部分)。在此基礎上,如果在命令模式下鍵入 U(大寫),可以看到,之前對第 3 行所做的 2 處修改,全部被恢復了:
http://c.biancheng.net
http://c.biancheng.net
http://c.biancheng.net
如果此時再鍵入 U(大寫),則又會恢復之前對第 3 行文本做過的全部操作:
http://c.biancheng.net
http://c.biancheng.net
網站修改:https:// c.biancheng.net/SuccessAlert