2017-10-10 46 views
0

我想知道是否有可能繞過VIM單恢復步驟,在遍歷撤消/由ü按Ctrl +[R恢復歷史。Vim的旁路恢復步驟,

我知道美妙的vim的撤消樹,但有時只是想避免單一的錯誤/意外更改。

也就是說,例如,當做一些複雜的變化並且尋找上下文信息時,不小心碰到某個鍵,例如~或(在可視模式下)U無意中。在這種情況下,在注意到我破壞了某些東西之後,我通常會使用撤消來快速查看我最近所做的更改,因此我發現這個錯誤已到位,但我無法將其修復,因爲這樣做會創建新的撤消分支在我無法重現的變化我以前undowed所以我必須打按Ctrl +[R,直到最後一個變化是回答下面,然後,人工發現錯誤(現在我知道它是什麼)來解決它。

如果有一個簡單的方法來「跳」單按Ctrl +[R,以避免錯誤的變化正在重播,整個過程將變得更加快捷。

回答

1

不,這是不可能的。這個「功能」將要求Vim內部存儲撤消/重做,作爲應用於文本的命令列表(以及如何使用文件重新加載外部更改或使用不是冪等的(自定義)命令?) 。

但是,有一個工作流程允許編輯和重播一系列命令:。如果您在宏中錄製動作(例如qq),則可以停止錄製,然後編輯該寄存器(在命令行上::let @q = '<C-r>q',或粘貼到暫存緩衝區中,編輯,然後再次撤回)。然後根據需要重播多次。

+0

謝謝。我明白。 關於你的解決方法,如果我理解得很好,它需要在知道我會犯一個錯誤之前開始記錄,這對我來說似乎有點尷尬。 但是它對我來說又是另一個(也許是可能的)方法:如果我們可以在兩個重做步驟之間拍攝,應該可以在它們之間生成差異並將其作爲補丁應用。 順便說一句,我原來的問題的答案是「不」(謝謝)。但我會牢記這些想法。也許我可以稍後再嘗試... – bitifet