这是对该问题的后续回答:为什么 vim 不总是给我删除交换文件的选项?
我的笔记本电脑死机了,当时打开了一些 Vim 会话。这些都是我已经保存的文件,所以我不需要交换文件,但是当我编辑其中一些文件时,“删除”选项不存在。如上面的问题所述,Vim 认为上一个进程仍在运行:
Found a swap file by the name "~/.vim/tmp//%home%dominickpastore%research%codegen%rabbitmq.c.swp"
owned by: dominickpastore dated: Tue May 12 13:56:53 2020
file name: ~dominickpastore/research/codegen/rabbitmq.c
modified: no
user name: dominickpastore host name: carbon
process ID: 8903 (still running)
While opening file "rabbitmq.c"
dated: Tue May 12 13:56:49 2020
问题是,我的笔记本电脑完全死机了,所以我确信前一个进程没有继续运行!为了确保万无一失,我检查了是否有另一个具有该 PID 的进程,但并没有。
有趣的是,它只对我打开的 5 个文件中的 2 个执行了此操作(所有文件都在不同的 Vim 实例中)。它正确地将其他 3 个文件识别为已消失。
Vim 如何判断前一个进程是否还在运行?为什么有时会出错?