我想了解vim中的多級撤銷。 我打開vim和類型:vim中的「更改」在撤消方面的定義是什麼?
1
2
3
4
5
6
7
,然後我輸入:
:u 1
我得到消息:
0 changes; before #1 22:53:11
,當我輸入:
:u 2
我看到:
E830: Undo number 2 not found
我的理解是在編輯模式下鍵入的每個vi命令或字符都被視爲「更改」,但顯然並非如此。
難道經驗豐富的vim專家會澄清嗎?
每個Vi(或Ex)命令,肯定但不是每個鍵入的字符;這將是非常乏味的。就插入而言,它的處理方式與任何其他Vi命令一樣:您進入插入模式插入某些內容並返回正常模式,整個插入操作被視爲一個撤消步驟。 (也就是說,我並不是真的想回答,因爲我不確定這是否結束,我敢肯定有很多複雜的情況,例如,當使用插件用'feedkeys'注入按鍵時,以及我不知道會發生什麼。) – icktoofay
感謝您的信息。你的解釋很有幫助。 – AlexL
這是一個很好的實用近似。除此之外,這非常複雜,並且瞭解您是否不是Vim開發人員並不是特別有用。 [gundo](https://github.com/sjl/gundo.vim)可以給你一個關於確切區別的感覺,它本身就是一個很好的工具。 –