Como dizer ao vim para não tentar descompactar um arquivo


15

Estou tentando abrir um .xlsxarquivo no Vim, mas ocorreu um erro dizendo:

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

Eu sei que é um arquivo binário, mas quero fazer algumas somas de verificação e provavelmente converter em hexadecimal.

Percebi que se eu alterar a extensão, o Vim não tentará mais descompactá-la. O que me leva à minha pergunta:

Existe uma maneira de dizer ao vim para abrir um arquivo sem tentar descompactá-lo?

FWIW, estou usando o Vim 7.4 no Windows 7.


Eu recebo o mesmo erro no meu sistema Linux, por isso não parece ser um comportamento específico para Windows
Martin Tournoij

1
Por curiosidade, por que você está fazendo suas somas de verificação / hexadecimal no vim?
Random832

@ Random832 nesta ocasião, apenas porque é a primeira coisa que me veio à mente. Na maioria das vezes, porque consigo soma de verificação de um intervalo em vez de todo o arquivo e hexadecimal porque posso alternar com o raw.
Roflo

Respostas:


16

Funcionalidades como essa são tratadas por autocmds . Para desativar autocmds para um comando específico, você pode usar :noautocmd(abreviado :noau). Nesse caso

:noau e foo.xlsx

simplesmente abrirá o arquivo bruto em vez de acionar os autocmds que tentam abrir o arquivo zip.

Você também pode usar isso no seu shell:

$ vim -c 'noau e foo.xlsx'

Se você deseja mais granularidade do que desativar todos os autocmds, pode desativar temporariamente os BufRead/ BufReadPreautocmds usando a 'eventignore'opção

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

Também é possível desativar apenas o autocmd/ augroupconforme definido pelo plugin zip? Eu gosto disso (+1), mas se você, por exemplo, tem autocmdque desativar o destaque de sintaxe e arquivos grandes (como é comum), também o desabilita como efeito colateral ...
Martin Tournoij

@Carpetsmoker Não temporariamente. Se você souber o nome do grupo (neste caso, "zip"), poderá definir todos os autocmds definidos nesse grupo com augroup zip | exe 'au!' | augroup END.
21815 jamessan

10

Parece o plug-in "zip", fornecido com o Vim e ativado por padrão.

:help zip tem algumas informações sobre isso, entre outras coisas:

PREVENÇÃO DA CARGA

Se, por algum motivo, você não desejar usar o vim para examinar arquivos compactados, poderá colocar as duas variáveis ​​a seguir em seu <.vimrc> para impedir o carregamento do plug-in zip:

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

Depois de adicionar essas duas linhas, consigo abrir um .ziparquivo como qualquer outro arquivo.

A propósito, também não sabia disso; mas a mensagem de erro mencionou zip#Browse, então eu apenas digitei :help zipe pousei na página de documentação correta :-)

Consulte Como navego para os tópicos na documentação do Vim? para obter mais informações e dicas sobre o sistema de ajuda do Vim.

Isso também funcionará para o tarplugin, exceto se você usar g:loaded_tarPlugin& g_loaded_tar.


Isso faz o truque. Pena que não posso +2 por vincular à pergunta da documentação.
Roflo

@Roflo Eu não posso aceitar nenhum crédito por esse post, isso é tudo trabalho de romainl :-) #
306 Martin Tournoij
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.