我有一个文件用gvim打开,它问我是否想重新加载当前缓冲区,因为它检测到文件的较新版本。我接受了,但事实证明,新的缓冲区不是我想要的。有没有办法恢复旧的缓冲区?不幸的是,磁盘上的文件(以及我用vim -r
查看的swp文件)包含新的缓冲区)。撤消用vim重新加载新的缓冲区
2
A
回答
2
尝试u
(撤消;如果您在重新加载后进行了更改,请重复直到旧版本显示)。
我在终端Vim,但我不认为这应该在这里有所作为。我在一个终端选项卡中用Vim打开了一个测试文件,进入一个新选项卡并对其进行编辑,保存该文件,切换回第一个选项卡,运行:e
以重新加载文件,然后将其切换回最后一个版本在u
的标签中打开。
1
我有这样的事情是我的.vimrc
" Backup stuff
set backupdir=~/.vim/backup
set directory=~/.vim/swap
set undodir=~/.vim/undo
我可以用这样的病例,你不小心覆盖本地更改帮助你,你想找到你的旧版本的文件。确保首先创建目录以避免启动时出现错误。
+0
我对backupdir有一个类似的东西,但不知道有没有undodir。但我不认为这会有所帮助 - 我认为增加'重新加载'可能是唯一能帮助我的东西。 – Stephen
3
如果您的缓冲区的行数少于'undoreload'
设置,则其内容将在重新加载之前存储在无动物中。这意味着,一个简单的u
或g-
应该让你的缓冲区内容回来。像我的历史插件或着名的Gundo或undotree插件的插件也可能会有所帮助。
请注意,这需要Vim至少7.3或更新版本的工作。较旧的Vims在重新加载时没有存储缓冲区状态。
相关问题
- 1. 刷新Vim缓冲区
- 2. 退出VIM后保留撤消缓冲区?
- 3. vim:获取卸载缓冲区的缓冲区号
- 4. 强制从缓冲区重新加载WebGL纹理
- 5. 重新加载并滚动所有缓冲区到底部
- 6. Emacs重新加载整个C++缓冲区
- 7. 如何防止NERDTree缓冲区删除? (或重新加载)
- 8. MSHTML:如何清除MSHTML的撤消/重做缓冲区
- 9. 如何在VIM中重新分配缓冲区编号?
- 10. 如何在vim中重新打开缓冲区?
- 11. 如何检查Vim为什么我的缓冲区停止工作?或者如何重新加载Vim?
- 12. 如何在Vim的整个缓冲区中应用新的textwidth
- 13. VIM失去撤消历史变化的缓冲剂
- 14. 防止Vim更新其撤消树
- 15. 在Vim中重置缓冲区
- 16. Vim重复点(“。”)命令缓冲区?
- 17. 的Flex星火文本区域insertText休息撤消缓冲区
- 18. vim - 重新打开未列在缓冲区列表中的已删除缓冲区
- 19. 区分Vim中的隐藏缓冲区和活动缓冲区
- 20. gVim/Vim - 如何将vim缓冲区写入新的(非vim)窗口?
- 21. 加载stdin缓冲区
- 22. OpenGL缓冲区更新
- 23. 期待刷新缓冲区
- 24. emacs ediff刷新缓冲区
- 25. vim:移动到缓冲区?
- 26. vi,vim缓冲区溢出
- 27. 从Vim脚本向缓冲区追加消息
- 28. Vim:获取缓冲区的最新修改时间
- 29. 刷新缓冲区中的所有文件在vim
- 30. 终端 - 在新的vim缓冲区中显示输出
还值得注意的是,您可以忽略磁盘上的更改,然后执行':DiffOrig'来查看当前缓冲区与磁盘上的不同之处。您需要将':DiffOrig'命令添加到'〜/ .vimrc'文件中。请参阅':h:DiffOrig'获取更多帮助。 –
好主意,但我已经尝试过,并没有奏效。这可能是因为你的测试文件很小,所以它们都适用于撤消缓冲区,而我的文件有点大,并不适合缓冲区。 – Stephen