1. 程式人生 > 其它 >5.6 Linux Vim撤銷和恢復撤銷快捷鍵

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