如何告诉Vim不要尝试解压缩文件


15

我试图.xlsx在Vim中打开文件,但出现错误:

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

我知道这是一个二进制文件,但我想做一些校验和,并可能转换为十六进制。

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

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

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


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

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

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

Answers:


16

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

:noau e foo.xlsx

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

您也可以从外壳程序使用此命令:

$ vim -c 'noau e foo.xlsx'

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

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

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

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

10

这似乎是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年

@Roflo我对该帖子不以为然,这就是romainl的全部作品:-)
Martin Tournoij 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.