7z 文件管理器删除外部编辑器的临时文件
我在工作中使用了 portableapps.com 上的很多应用程序,尤其是 7-zip 便携式和 gVim 便携式。
我已将 7zip 的外部编辑器设置为 gVimPortable.exe。当编辑不在存档或压缩文件内的文件时,它可以完美地工作......但在编辑存档或压缩文件内的文件时,它会严重失败。
所发生的情况是,7-zip portable 将文件存储到临时位置,启动 gvimportable.exe,它会分叉并打开 gvim.exe。
gvimportable.exe 退出一段时间后,我可以在 Procmon 中看到 7zFM.exe 执行“SetDispositionInformationFile”(详细信息:“Delete:True”)删除临时文件,当 gvim 尝试打开它时,该文件已被删除。已删除。
请注意,如果我将编辑器设置为 NotepadPlusPlusportable.exe,则它可以正常工作。
您对这种行为有解释吗?
请注意,gVimPortable.exe 的 -f
选项不能解决我的问题。
I am using a lot applications from portableapps.com for work, and more particularly 7-zip portable and gVim portable.
I have set 7zip's external editor to gVimPortable.exe. It works perfectly when editing a file that is not inside an archive or compressed file… but it miserably fails when editing a file inside an archive or compressed file.
What happens is that 7-zip portable stores the file to a temporary place, launches gvimportable.exe, which forks and opens gvim.exe.
And some time after gvimportable.exe exits, I can see in Procmon that 7zFM.exe does a “SetDispositionInformationFile” (Details: “Delete: True”) that deletes the temporary file, and when gvim tries to open it, the file has been deleted.
Note that it works perfectly if I set the editor to NotepadPlusPlusportable.exe.
Do you have an explanation for this behaviour?
Please not that the -f
option of gVimPortable.exe does not solve my problem.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
当 gvim 按照你所说的默认启动时,它会分叉并退出,因此 7z 认为编辑已完成并删除文件。
您需要传递参数
-f
或--nofork
来防止这种情况发生。中的启动部分
请参阅 gvim 手册 rev1
添加
到
_vimrc
(编辑->启动设置)When gvim started as you say by default it forks and exits so 7z thinks that the edit has finished and deletes the file.
What you need is to pass the argument
-f
or--nofork
to prevent this.See the startup section in the gvim manual
rev1
add
to
_vimrc
(Edit->Startup Settings)我想我已经找到了一个解决方案,至少适用于我的环境(来自portableapps的7zip v9.20 + gVim 7.2)。
\App\vim\vim72\gVim.exe
而不是 \App\vim\_gvimrc
(不在 \Data\setting
中)。说明:
\App\vim\vim72\gVim.exe
和 \gVimPortable.exe
都可以加载 \App\vim\_gvimrc
:-)I think I've found a solution, at least works on my env (7zip v9.20 + gVim 7.2 from portableapps).
<base>\App\vim\vim72\gVim.exe
instead of the<base>\gVimPortable.exe
<base>\App\vim\_gvimrc
(not in<base>\Data\setting
).Explanation:
<base>\App\vim\vim72\gVim.exe
and<base>\gVimPortable.exe
could load<base>\App\vim\_gvimrc
:-)