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.

Roflo
fonte
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=
jamessan
fonte
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.

Martin Tournoij
fonte
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