5.6 Linux Vim撤銷和恢復撤銷快捷鍵
使用 Vim 編輯檔案內容時,經常會有如下 2 種需求:
- 對檔案內容做了修改之後,卻發現整個修改過程是錯誤或者沒有必要的,想將檔案恢復到修改之前的樣子。
- 將檔案內容恢復之後,經過仔細考慮,又感覺還是剛才修改過的內容更好,想撤銷之前做的恢復操作。
基於這 2 種需求,Vim 編輯器提供了撤銷和恢復撤銷的命令,如表 1 所示。
快捷鍵 | 功能 |
---|---|
u(小寫) | undo 的第 1 個字母,功能是撤銷最近一次對文字做的修改操作。 |
Ctrl+R | Redo 的第 1 個字母,功能是恢復最近一次所做的撤銷操作。 |
U(大寫) | 第一次會撤銷對一行文字(游標所在行)做過的全部操作,第二次使用該命令會恢復對該行文字做過的所有操作。 |
注意,以上這 3 種命令都必須在 Vim 編輯器處於命令模式時才能使用。
下面通過一個例子來演示以上 3 個命令的具體用法。首先,我們新建一個 demo.txt 檔案並開啟,鍵入一行內容,例如:
http://www.linuxyz.cn
然後按“Esc”鍵,使 Vim 由輸入模式轉為命令模式,並使用 yy 命令將這一行文字複製到剪貼簿中,如此我們就可以在文字任意位置通過鍵入 p(或大寫的 P)命令將複製的內容貼上到游標所在的位置。
假設我們將游標調整到第一行最後一個字元處,連續按兩次 p 命令(貼上 2 次),則此時文字中的內容變為:
http://www.linuxyz.cn http://www.linuxyz.cn http://www.linuxyz.cn
在此基礎上,通過 u(小寫)命令就可以使文字內容恢復到上一次做貼上操作之前的樣子,其中“上一次”的含義是,恢復操作是可以疊加的,即按一次就會在現有基礎上做一次恢復操作。
比如,繼續操作 demo.txt 檔案,按一次 u,會發現其文字內容變為:
http://www.linuxyz.cn
http://www.linuxyz.cn
再按一次 u,文字內容繼續恢復為:
http://www.linuxyz.cn
同樣,恢復撤銷的操作和撤銷操作是相對應的,通過按 Ctrl+R 組合鍵,可以撤銷之前所做的一次恢復操作。例如,繼續操作 demo.txt 檔案,按一次 Ctrl+R,會發現其文字內容恢復為:
http://www.linuxyz.cn http://www.linuxyz.cn
再按一次 Ctrl+R,文字內容又恢復為:
http://www.linuxyz.cn
http://www.linuxyz.cn
http://www.linuxyz.cn
U(大寫)的功能和之前的 2 個命令不同,它的作用是撤銷或恢復撤銷對游標所在行文字所做的全部操作。比如,我們對 demo.txt 檔案內容做如下修改:
http://www.linuxyz.cn
http://www.linuxyz.cn
Linux教程 https://www.linuxyz.cn/introduction-to-linux
可以看到,這裡對第三行文字做了 2 處修改(紅色標註部分)。在此基礎上,如果在命令模式下鍵入 U(大寫),可以看到,之前對第 3 行所做的 2 處修改,全部被恢復了:
http://www.linuxyz.cn
http://www.linuxyz.cn
http://www.linuxyz.cn
如果此時再鍵入 U(大寫),則又會恢復之前對第 3 行文字做過的全部操作:
http://www.linuxyz.cn
http://www.linuxyz.cn
Linux教程 https://www.linuxyz.cn/introduction-to-linux