Как я могу увидеть опцию в 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
Другие вопросы по тегам