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).
- Установите редактор 7zip для использования
<base>\App\vim\vim72\gVim.exe
вместо<base>\gVimPortable.exe
- Поместите ваш файл.vimrc в
<base>\App\vim\_gvimrc
(не в<base>\Data\setting
).
Объяснение:
- 7zip удалит временный файл после того, как внешнее приложение завершит работу. Я думаю, что gVimPortable дает 7zip неверное указание на это. Так что используйте gVimPortable, вам нужно везение, чтобы увидеть контент, так как он должен достаточно быстро открывать файл, прежде чем 7zip удалит его, иногда работает, иногда нет. Но 7zip всегда может правильно определить gVim.
- Я только что сделал предположение, но, похоже, оба
<base>\App\vim\vim72\gVim.exe
а также<base>\gVimPortable.exe
мог загрузить<base>\App\vim\_gvimrc
:-)