我相信它的设计是原子的,我听说vim将保存到一个临时目录,然后保存mv在旧文件上的临时文件,以确保旧版本或新版本存在,而且从不一半或者完全没有文件,即使在保存期间关闭电源也是如此.
有没有人有更多细节?
如何完成取决于几个选项的值.
影响这一点的主要选项是backupcopy,在unix系统上,这默认为默认的yes其他系统auto.只有设置为,no才能确保写入将像您的问题一样完成.当设置为yesvim时,将在制作备份副本后覆盖原始文件内容.如果设置为auto,如果它检测到可以传递属性并且文件不是链接(符号链接或硬链接),则它将在问题中表现.使其中断链接的选项还有其他值,请参阅该选项的帮助.
影响这一点的其他选择是backup,writebackup.必须至少设置其中一个才能进行备份.如果未进行备份,则将覆盖原始文件内容.writebackup只要vim在编译时支持它,该选项默认为on.还有一个backupskip选项,用于指定不进行备份的文件模式列表; 如果其中一个模式与文件匹配,则不会再进行备份,原始文件内容将被覆盖.
您对一般方法的看法是正确的;有关详细信息,请参阅:help backup。
您可以通过设置微调方法;当您处理硬性文件或使用inotify等 API来响应文件系统更改时,这一点非常重要。
此外,交换文件 ( :help swap-file) 和持久撤消 ( :help persistent-undo) 可以帮助您避免任何数据丢失,即使在磁盘崩溃的情况下也是如此。
| 归档时间: |
|
| 查看次数: |
804 次 |
| 最近记录: |