Как размещено на сайте обмена стеком vi Мартином Турнои :
Параметр «Удалить это» не отображается, если процесс Vim все еще выполняется;Я не могу найти это нигде, но я искал это в исходном коде;из memline.c
, строка 4512 (слегка упрощенно):
do_dialog(
[..]
process_still_running
? (char_u *)_("&Open Read-Only\n&Edit anyway\n&Recover\n&Quit\n&Abort") :
(char_u *)_("&Open Read-Only\n&Edit anyway\n&Recover\n&Delete it\n&Quit\n&Abort"), [..]);
Файл подкачки содержит идентификатор процесса, который его создал, и, если процесс с таким идентификатором PID все еще существует, он считает процесс «запущенным»..
Сообщение об обмене должно отображать эту информацию:
E325: ATTENTION
Found a swap file by the name "~/.vim/tmp/swap/swapy.swp"
owned by: martin dated: Fri Sep 8 22:13:35 2017
file name: ~martin/swapy
modified: no
user name: martin host name: arch.arp242.net
process ID: 17355 (still running)
While opening file "swapy"
dated: Fri Sep 8 22:13:35 2017
Обратите внимание на строку process ID: 17355 (still running)
.
Наиболее вероятный сценарий - наличие другого Vimэкземпляр работает где-то :-) Вы можете kill
это, если не можете его найти.
Существует небольшая вероятность того, что PID был повторно использован другим процессом, хотя, вВ этом случае вы можете выйти из Vim, вручную удалить файл подкачки и снова запустить его:
$ rm ~/.vim/tmp/swap/swapy.swp