Как я могу увидеть опцию в Vim "[D]elete" файл подкачки?
Когда я открываю файл, для которого Vim видит наличие файла подкачки, он предупреждает меня и дает мне несколько опций, таких как "[A]bort" и "[E]dit anyways". Тем не менее, один вариант, который он использовал, чтобы показать мне, но больше не делает, это "[D]elete" файл подкачки. Как я могу заставить это показать эту опцию снова?
1 ответ
Как размещено на сайте обмена стека 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"), [..]);
Файл подкачки встраивает ID процесса, который его создал, и, если процесс с таким 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