2010-08-25 48 views
6

保存文件时是否可以自动删除交换文件,并在文件更改时自动重新创建交换文件?Vim,保存文件时自动删除交换文件

这是一个好主意吗?

编辑: 想要这样做的原因是,如果计算机突然用完或崩溃,我不必通过diff过程查看上次保存后没有变化的文件。

提到的diff过程是;首先打开文件只读,将其保存在不同的文件名下,然后将其删除。

它并不经常发生,但是当它发生时也很烦人。

+1

你为什么要这样做? – jkramer 2010-08-25 13:47:57

+0

已添加更多信息。看我的编辑。 – Orjanp 2010-08-25 15:07:31

+2

您应该注意,当vim检测到交换文件时,它会告诉您交换文件是否包含该文件的修改版本。如果修改:NO,那么通常可以安全地删除交换文件。 – 2010-08-27 03:51:11

回答

3

是否可以在文件保存时自动删除交换文件,并在文件更改时自动重新创建它?

这是一个好主意吗?

删除和创建文件是相对较慢的操作。如果有人要继续编辑,保留交换文件是有道理的。或者为什么人们会保持VIM运行?

此外,VIM使用交换文件来检测尝试编辑来自不同VIM实例的同一文件。

总而言之,我认为尝试删除文件是一个坏主意。

P.S.值得注意的是,当VIM以只读模式作为viewvim -R启动时,它不会创建交换文件。但是,如果一旦更改文件,交换文件将被创建。

2

我假设你像我一样有一个长时间运行的vim会话(我的屏幕会话中的第一个窗口始终是vim,它通常会持续几天,几乎在正常运行的整个过程中)。我认为交换文件不会保留,如果你只是关闭缓冲区,除非你有'隐藏'设置。会发生什么情况是,当您为缓冲区启用“隐藏”时,vim会尝试保留缓冲区的所有撤消历史记录,因此必须使交换文件可访问,以防您回到缓冲区并开始撤消更改。至于我,我不喜欢这个功能,并保持它关闭(这是默认的),所以只需要处理崩溃时我主动加载到vim窗口中的那些缓冲区的交换文件。由于我有每隔5分钟自动保存一次会话的宏,并且由于我也禁用了Vim的默认交换文件检测提示,所以在崩溃后重新启动会话是相当痛苦的。