【发布时间】:2013-06-07 03:42:36
【问题描述】:
在编辑器之外编辑文件时,Vim 撤消文件被清除。
我怎样才能得到它,以便我可以将文件恢复到旧版本,即使它是在 Vim 之外编辑的?这可能吗?
【问题讨论】:
-
如果你看一下
:h persistent-undo,你会发现撤消文件是加密的。我猜如果文件被外部更改,vim 无法撤消该加密。 -
这太棒了,几乎到了矫枉过正的地步。
标签: vim
在编辑器之外编辑文件时,Vim 撤消文件被清除。
我怎样才能得到它,以便我可以将文件恢复到旧版本,即使它是在 Vim 之外编辑的?这可能吗?
【问题讨论】:
:h persistent-undo,你会发现撤消文件是加密的。我猜如果文件被外部更改,vim 无法撤消该加密。
标签: vim
你可以使用 vim 备份:
set backup " enable backup file
set backupdir=~/.vim/backups " backup directory
然后你可以去获取上次保存的备份vim,以防你想在外部编辑后恢复,但这不像撤消文件。 From vim wiki:
但是,请注意,如果在没有 Vim 的情况下从外部修改文件,当您再次开始编辑文件时,Vim 将无法读取撤消历史记录,并且撤消树信息将丢失。没有办法找回它。
【讨论】:
u 它恢复到以前的状态。
如果您指的是由字母 u 调用的撤消,在我的系统上我看不到 undofile(@%) 返回的文件,即使我看到了我也不认为我可以删除它.它不会影响我使用u 键的能力。
如果您的意思是其他人/程序修改了您当前在 vim 中打开的文件,您应该收到文件已更改的通知。选项为OK 和Load File。如果按OK,可以按u键,强行写入:w!。这将清除其他人/程序的更改。
如果这些答案都不适用于您,请更详细地解释。
【讨论】:
sed 对文件进行修改(注释掉其中的所有行),然后用 vim 将它呈现给我进行编辑。如果我使用错误的参数运行我的脚本,它会进行此修改并清除撤消文件的历史记录。