【问题标题】:Vim loses undo history when changing buffersVim 在更改缓冲区时丢失撤消历史记录
【发布时间】:2011-02-13 12:09:30
【问题描述】:

如果我在一个文件中工作,更改到另一个缓冲区,然后再改回来,我已经丢失了我的撤消历史记录。

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

有什么解决方法吗?

【问题讨论】:

  • 这不止一次让我措手不及。我怀疑你问是因为 :sp test.txt:tabe test.txt 不适合你?
  • 是的。我不使用制表符,因为我发现只有一个垂直拆分最容易管理。如果需要,我会做更多的拆分,但主要问题是我不断地切换缓冲区,最终想回到以前的缓冲区并撤消某些事情。如果我知道我将要经常编辑一个文件并且可能需要撤消,那么我会尽量不切换该窗口上的缓冲区 - 但有时我会忘记。

标签: vim


【解决方案1】:

您还可以添加持久撤消,这将使 vim 存储您的撤消,即使通过重新启动:

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

set undolevels=1000
set undoreload=10000

编辑 - 通过@sanbor:

别忘了做mkdir ~/.vim/undo,否则vim不会帮你做的。

【讨论】:

  • 别忘了做mkdir ~/.vim/undo,否则vim不会帮你做的。来源:stackoverflow.com/questions/5700389/using-vims-persistent-undo
  • @Patrick 因为它不是更好。我经常对文件进行自发的更改并习惯性地保存,只是为了很快用 Undo 系列清除未经证实的垃圾。在打开文件之前挖掘撤消(〜最近的稳定状态)将是可怕的!
【解决方案2】:

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

【讨论】:

  • 我喜欢的 vim ,这里有点烂:( ":set hidden" 选项默认应该是打开的。
猜你喜欢
  • 1970-01-01
  • 2010-10-13
  • 2013-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多