我正在尝试在Vim中打开.xlsx文件,但出现错误消息:

***error*** (zip#Browse) unzip not available on your system  


我知道这是一个二进制文件,但是我想执行一些校验和并

我注意到,如果更改扩展名,Vim不再尝试解压缩它。这引出我一个问题:

有没有办法告诉vim打开文件而不尝试解压缩?

FWIW,我在Windows下使用Vim 7.4 7.

评论

我在Linux系统上遇到相同的错误,因此它似乎不是Windows特定的行为

出于好奇,为什么要在vim中执行校验和/十六进制?

@ Random832在这种情况下,只是因为这是我想到的第一件事。大多数情况下,因为我可以校验和而不是整个文件的范围,而十六进制是因为我可以使用raw来回切换。

#1 楼

这样的功能由autocmds处理。为了对特定命令禁用autocmds,可以使用:noautocmd(缩写为:noau)。在这种情况下,

:noau e foo.xlsx


只会打开原始文件,而不会触发尝试打开zip文件的autocmds。

您也可以在您的shell中使用它:

$ vim -c 'noau e foo.xlsx'


如果要比禁用所有autocmds更加详细,可以使用BufRead选项暂时禁用BufReadPre / 'eventignore' autocmds。

:set ei=BufRead,BufReadPre
:e foo.xlsx
:set ei=


评论


是否也可以仅禁用zip插件定义的autocmd / augroup?我喜欢这个(+1),但是例如,如果您有一个autocmd来禁用语法高亮显示,并且对于大型文件(如常见的),那么您也将其作为副作用...

–马丁·图尔诺伊(Martin Tournoij)
2015年2月25日在21:43

@Carpetsmoker不是暂时的。如果知道组名(在本例中为“ zip”),则可以使用augroup zip |取消定义该组中定义的所有autocmds。 exe“ au!” | augroup END。

–詹姆斯
2015年2月25日在21:47



#2 楼

这似乎是Vim附带的“ zip”插件,默认情况下已启用。

:help zip除此以外还具有一些相关信息:


防止加载

如果由于某些原因您不希望使用vim检查压缩文件,
您可以将以下两个变量放入<.vimrc>中以防止
从加载的zip插件:

let g:loaded_zipPlugin= 1                                               
let g:loaded_zip      = 1                                               



添加这两行之后,我就可以像打开其他文件一样打开.zip文件。

顺便说一下,我也不知道。但是错误消息提到zip#Browse,所以我只键入:help zip并进入了正确的文档页面:-)

请参见如何导航到Vim文档中的主题?有关Vim帮助系统的更多信息和提示。

这对tar插件也适用,但您使用g:loaded_tarPluging_loaded_tar除外。

评论


这样就可以了。太糟糕了,我无法+2链接到文档问题。

–罗夫洛
2015年2月25日在21:27

@Roflo我对那篇文章不以为然,这就是romainl的全部工作:-)

–马丁·图尔诺伊(Martin Tournoij)
2015年2月25日在21:30