Vim,在文件保存时自动删除交换文件

7

当文件保存时自动删除swap文件,并在文件更改时自动重新创建swap文件,这种情况是否可能实现?

这样做是否是一个好主意?

编辑:想要这样做的原因是,如果计算机突然断电或崩溃,我不必为上次保存后没有更改的文件进行diff过程。

所提到的diff过程是:先以只读方式打开文件,在另一个文件名下保存它,再用vimdiff对其进行比较,最后删除它。

虽然这种情况不经常发生,但当发生时也同样令人烦恼。


已添加了更多信息,请查看我的编辑。 - Orjanp
3
请注意,当vim检测到交换文件时,它会告诉你交换文件中是否包含了被修改过的文件。如果显示为“modified: NO”,那么通常可以安全地删除该交换文件。 - too much php
哦,我没有注意到。如果是这样的话,我的问题就已经过时了。 - Orjanp
2个回答

2
当文件保存时自动删除交换文件,并在文件更改时自动重新创建交换文件,这是否可行?这是一个好主意吗?
删除和创建文件是相对较慢的操作。保留交换文件是有意义的,以防需要继续编辑。否则为什么要保持VIM运行?
此外,VIM使用交换文件检测来自不同VIM实例的尝试编辑相同文件的情况。
总的来说,我认为尝试删除该文件是一个坏主意。
值得注意的是,当VIM以只读模式启动为view或vim -R时,它不会创建交换文件。但是,一旦您更改了文件,交换文件就会被创建。

2
我假设你有一个像我一样的长时间运行的vim会话(我的screen会话中的第一个窗口总是vim,并且通常持续几天,几乎整个正常运行时间)。如果你只是关闭缓冲区,除非你开启了“hidden”设置,否则swapfile不会被保留。当你为缓冲区打开'hidden'时,vim试图保留所有缓冲区的撤消历史记录,因此必须让swapfile可访问,以防你回到缓冲区并开始撤销更改。对于我来说,我不喜欢这个功能并将其关闭(这是默认设置),因此只需要处理那些我在vim窗口中主动加载的缓冲区的swapfile,当系统崩溃时,由于我有自动保存会话的宏,而且我也禁用了Vim的默认swapfile检测提示,所以重新启动我的会话相当轻松。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接