我很遗憾我使用vim删除了错误的功能而没有提交SVN服务器 编译之后我发现我犯了错误。我也通过vim''创建'文件。
现在我还没有关闭文件,它有.swp文件。 我尝试使用'u'命令恢复删除但失败了。 vim说这是最新的变化。感叹....无论如何,我可以恢复我的功能吗?
百万感谢。答案 0 :(得分:8)
使Drasils指针更明确:
:undolist
g - “回到过去”
g + 以'及时前进'
Vim 7.3+具有撤消'分支':意味着它将保存状态快照,即使线性历史被覆盖(因此无法通过简单的 u 和 )
答案 1 :(得分:2)
Vim通常保存任何编辑为备份的文件的先前版本,并附加~
- 您可以检查该文件是否存在,如果存在,是否有正确的内容。
答案 2 :(得分:2)
我不知道你是否可以在这里恢复一些东西,但是对于将来,如果你使用vim 7.3,你应该激活我在my previous comment中解释的这些选项。
我必须说savevers插件为我节省了很多时间; - )
答案 3 :(得分:0)
有几种方法可以恢复由于崩溃而无意中丢失的文本,或者是因为您无意中关闭了程序。
使用persistent-undo。持久性撤消提供了#2和#3点中交换/备份文件选项提供的几乎所有功能,以及一些其他选项,如粒度历史记录遍历。
一个。设置persistent-undo
:
将其放入.vimrc
:
set undofile
set undodir=~/.vim/undodir
湾创建undodir
mkdir ~/.vim/undodir
℃。要撤消更改,请使用以下任一选项
1)g+
在正常模式下继续前进
2)g-
在正常模式下往返历史
3)。 earlier 20s
可以追溯到20秒或earlier 10m
以及时间返回10分钟等等
4)later 20s
及时前进20秒或later 10m
及时前进10分钟
5)。使用undol
获取撤消更改列表
d。要获取撤消分支的可视化,您可以使用gundo.vim
:http://bitbucket.org/sjl/gundo.vim/等插件来显示分支
使用备份文件
一个。在.vimrc
中使用此功能
set backup
湾将其放在.vimrc
中,设置备份目录
`set backupdir =〜/ tmp /
℃。通过在.vimrc
中进行设置,将备份文件名设置为添加到备份文件中
set backupext=string
使用交换文件
一个。在.vimrc
中使用此功能
set swapfile
湾将此放在.vimrc
中,设置交换目录。这可能不是一个好主意,因为它会阻止您拥有两个具有相同名称的文件,或者导致交换文件名中出现冲突。
set directory=~/tmp/
更好的选择是提供多个路径,因此如果vim遇到冲突,则可以将其保存到可以使用
写入的目录中。 set directory=,~/tmp/
在这种情况下,它会尝试将交换文件写入当前目录。如果它不能,那么它将尝试将其写入〜/ tmp目录
℃。通过在.vimrc
set backupext=string
TL; DR 使用persistent-undo
。它提供了swap
和backup
的几乎所有功能,并提供了其他功能,例如backup
和swap
文件选项未提供的细粒度撤消功能。
<强>参考强> 1. ftp://ftp.vim.org/pub/vim/doc/book/vimbook-OPL.pdf