vi 交换文件为空

vi 交换文件为空

如果vim崩溃并留下一个.swp空文件(即文件大小 = 0),是否意味着我在计算机崩溃期间没有对该文件进行任何更改?

如果是这样,那么有没有办法改变设置,以便vim只有当文件非空时才会提示我“交换”文件?

答案1

这可能意味着没有未写入的更改,也可能意味着 Vim 没有机会保存到交换文件;Vim 不会不断写入交换文件。请参阅“ :help 'updatetime'”(单引号是命令的一部分)。

鉴于此,即使交换文件为空,Vim 也会提示您,这可能是一个有用的警告,表明出现了问题,并仔细查看文件是否有丢失的数据。

答案2

Vim 交换文件以魔术字符串开头b0VIM,后跟空格和 Vim 版本号。空的交换文件不正常,可能表示存在更严重的问题。

请注意,此ATTENTION消息的部分目的是当另一个 Vim 进程正在编辑同一个文件时向您发出警告,因此您可能希望保留它,即使您知道没有待处理的更改。警告会告诉您文件是否被修改以及前一个进程是否仍在运行:如果两者都不是,则删除交换文件应该是安全的,否则您应该谨慎行事。

您可以使用 禁用该ATTENTION消息set shortmess+=A,但 Vim 没有在 API 中公开足够的有关恢复的信息,因此无法在低风险情况下自动禁用该消息。如果您非常谨慎地对待工作流程,则可以禁用该消息,然后根据需要手动处理恢复。如果您采用这种方法,您可能希望简化交换文件处理,如下所示:https://stackoverflow.com/questions/63104/smarter-vim-recovery

相关内容