7z файловый менеджер удаляет временный файл для внешнего редактора

Я использую много приложений от portableapps.com для работы, в частности, 7-zip portable и gVim portable.

Я установил внешний редактор 7zip для gVimPortable.exe. Он отлично работает при редактировании файла, который не находится внутри архива или сжатого файла... но с треском проваливается при редактировании файла внутри архива или сжатого файла.

Что происходит, так это то, что 7-zip portable сохраняет файл во временном месте, запускает gvimportable.exe, который разветвляется и открывает gvim.exe.

И через некоторое время после выхода gvimportable.exe я вижу в Procmon, что 7zFM.exe выполняет "SetDispositionInformationFile" (Подробности: "Delete: True"), который удаляет временный файл, и когда gvim пытается открыть его, файл был удален.

Обратите внимание, что он отлично работает, если я установил редактор на NotepadPlusPlusportable.exe.

У вас есть объяснение этому поведению?

Пожалуйста, не то, что -f опция gVimPortable.exe не решает мою проблему.

2 ответа

Решение

Когда gvim запускается, как вы сказали по умолчанию, он разветвляется и выходит, поэтому 7z считает, что редактирование завершено, и удаляет файл.

Что вам нужно, это передать аргумент -f или же --nofork чтобы предотвратить это.

Смотрите раздел запуска в руководстве gvim

rev1

добавлять

let &guioptions = "gmrLtTf"

в _vimrc (Правка-> Настройки запуска)

Я думаю, что нашел решение, по крайней мере, работает на моем env (7zip v9.20 + gVim 7.2 от portableapps).

  1. Установите редактор 7zip для использования <base>\App\vim\vim72\gVim.exe вместо <base>\gVimPortable.exe
  2. Поместите ваш файл.vimrc в <base>\App\vim\_gvimrc (не в <base>\Data\setting).

Объяснение:

  1. 7zip удалит временный файл после того, как внешнее приложение завершит работу. Я думаю, что gVimPortable дает 7zip неверное указание на это. Так что используйте gVimPortable, вам нужно везение, чтобы увидеть контент, так как он должен достаточно быстро открывать файл, прежде чем 7zip удалит его, иногда работает, иногда нет. Но 7zip всегда может правильно определить gVim.
  2. Я только что сделал предположение, но, похоже, оба <base>\App\vim\vim72\gVim.exe а также <base>\gVimPortable.exe мог загрузить <base>\App\vim\_gvimrc:-)
Другие вопросы по тегам