更改缓冲区时,Vim会丢失撤消历史记录


70

如果我正在处理文件,则更改为另一个缓冲区,然后再更改回去,则丢失了撤消历史记录。

  1. vim File1.txt -进行大量更改并保存。
  2. 打开新缓冲区- :e test.txt
  3. 切换回File1.txt- :b#
  4. 撤消历史记录消失了。

有任何解决方法吗?


这使我不只一次意识到。我怀疑您在问是因为:sp test.txt还是:tabe test.txt对您不起作用?
dash-tom-bang 2010年

是。我不使用制表符,因为我发现只有一个垂直拆分是最容易管理的。如果需要的话,我会做更多的拆分,但是主要的问题是我不断地切换缓冲区,最终想要回到以前的缓冲区并撤消某些操作。如果我知道我将要编辑大量文件并且可能需要撤消操作,那么我尽量不要在该窗口上切换缓冲区-但有时我会忘记。
Brian

Answers:


81

你可以的:set hidden。这意味着仅当您切换到新文件时,才会隐藏旧文件的缓冲区。切换回时,您仍具有撤消历史记录。


5
否则我爱VIM,在这里吸一点点:(本“:设置隐藏”选项应该是默认开启
TEM波拉

67

您还可以添加持久撤消,即使重新启动,vim也会存储您的撤消:

" Persistent undo
set undofile
set undodir=$HOME/.vim/undo

set undolevels=1000
set undoreload=10000

编辑-通过@sanbor:

别忘了做mkdir ~/.vim/undo,否则vim不会为您做。


2
别忘了做mkdir ~/.vim/undo,否则vim不会为您做。资料来源:stackoverflow.com/questions/5700389/using-vims-persistent-undo
sanbor 2015年

1
@Patrick因为不是更好。我经常对文件进行自发更改,并按习惯保存,以便很快使用“撤消”系列擦除未经证实的垃圾。从打开文件之前挖出撤消(〜最近的稳定状态)将是可怕的!
血腥的
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.