【问题标题】:Vim undo: undo changes after file writeVim 撤消:文件写入后撤消更改
【发布时间】:2013-07-29 22:57:51
【问题描述】:

在我的 vim 代码中,我做了很多更改,然后做了一个ZZ(保存并退出)。但后来我意识到我不需要那些改变。有没有一种方法可以让我在使用仍然可能存储数据的缓冲区进行这些更改之前恢复到状态。保存退出后我没有做任何更改。

【问题讨论】:

  • 从备份中恢复。
  • @choroba ,确切地说,这就是我需要知道的,我该怎么做?
  • 您是否开启了持久撤消功能? (很可能不是,但它的选项值得研究以备将来使用)看看:h persistent-undo
  • @FDinoff :我没有那个 ON,刚刚在我的 .vimrc 中添加了以下内容:set undofileset undodir=/home/<uname>/.vimundo/
  • 如果你在目录中没有看到文件名~以前版本的文件,你的 .vimrc 可能将 bdir 或 backupdir 设置为 ~/.vimbackup 之类的东西

标签: vim undo


【解决方案1】:

vim中有persistent undo选项,:h persistent-undo
注意:它是在VIM 7.3版本中引入的,所以对于早期版本,它不起作用。

可以通过在您的.vimrc 中输入以下文字来打开它:

if has('persistent_undo')      "check if your vim version supports it
  set undofile                 "turn on the feature  
  set undodir=$HOME/.vim/undo  "directory where the undo files will be stored
  endif     

注意:在启用此选项之前,任何丢失的东西都会丢失。
启用该选项后,您将能够对启用该选项后添加/删除的任何内容进行后续撤消/重做。

【讨论】:

  • 请注意,您必须确保目录存在才能使其正常工作。
  • 我不确定为什么这个答案被接受了。我的情况与问题中的情况相同,但我仍然不明白它是如何解决问题的。该设置似乎仅适用于新文件/更改。
  • 您可以通过在 if 块中添加语句 silent !mkdir -p ~/.vim/undo 来确保目录存在。此解决方案假定您具有创建目录~/.vim/undo 的写入权限。
猜你喜欢
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 2021-05-20
  • 1970-01-01
  • 2010-12-06
  • 2013-07-31
  • 2015-03-09
  • 2011-01-15
相关资源
最近更新 更多