我正在使用来自portableapps.com的很多应用程序来工作,尤其是7-zip便携式和gVim便携式。
我已将7zip的外部编辑器设置为gVimPortable.exe。编辑不在存档或压缩文件中的文件时,它可以正常工作......但是当编辑存档或压缩文件中的文件时,它会失败。
7-zip portable会将文件存储到临时位置,启动gvimportable.exe,它会分叉并打开gvim.exe。
gvimportable.exe退出后的一段时间,我可以在Procmon中看到7zFM.exe执行“SetDispositionInformationFile”(详细信息:“删除:True”)删除临时文件,当gvim尝试打开它时,文件已被删除。
请注意,如果我将编辑器设置为NotepadPlusPlusportable.exe,它可以正常工作。
您对此行为有解释吗?
请注意,gVimPortable.exe的-f
选项无法解决我的问题。
答案 0 :(得分:2)
当gvim默认启动时,它会分叉和退出,因此7z认为编辑已完成并删除了该文件。
您需要传递参数-f
或--nofork
以防止这种情况发生。
请参阅gvim manual
中的启动部分添加
let &guioptions = "gmrLtTf"
到_vimrc
(编辑 - >启动设置)
答案 1 :(得分:1)
我想我找到了一个解决方案,至少可以在我的环境中使用(来自portableapps的7zip v9.20 + gVim 7.2)。
<base>\App\vim\vim72\gVim.exe
而不是<base>\gVimPortable.exe
<base>\App\vim\_gvimrc
(不在<base>\Data\setting
中)。 说明:
<base>\App\vim\vim72\gVim.exe
和<base>\gVimPortable.exe
都可以加载<base>\App\vim\_gvimrc
:-)