Come dire a vim di non provare a decomprimere un file


15

Sto cercando di aprire un .xlsxfile in Vim, ma viene visualizzato un errore che dice:

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

So che è un file binario, ma voglio fare alcuni checksum e probabilmente convertirli in esadecimali.

Ho notato che se cambio l'estensione, Vim non prova più a decomprimerlo. Il che mi porta alla mia domanda:

C'è un modo per dire a Vim di aprire un file senza tentare di decomprimerlo?

FWIW, sto usando Vim 7.4 in Windows 7.


Ottengo lo stesso errore sul mio sistema Linux, quindi non sembra essere un comportamento specifico di Windows
Martin Tournoij,

1
Solo per curiosità, perché stai facendo i tuoi checksum / hex all'interno di Vim?
Casuale 832,

@ Random832 in questa occasione, solo perché è la prima cosa che mi è venuta in mente. La maggior parte delle altre volte, perché posso eseguire il checksum di un intervallo anziché l'intero file ed esadecimale perché posso passare avanti e indietro con raw.
Roflo,

Risposte:


16

Funzionalità come questa sono gestite da autocmds . Per disabilitare autocmds per un comando specifico, puoi usare :noautocmd(abbreviato :noau). In questo caso

:noau e foo.xlsx

aprirà semplicemente il file non elaborato anziché attivare i file autocmds che tentano di aprire il file zip.

Puoi anche usarlo dalla tua shell:

$ vim -c 'noau e foo.xlsx'

Se si desidera una granularità maggiore rispetto alla disabilitazione di tutti gli autocmds, è possibile disabilitare temporaneamente BufRead/ BufReadPreautocmds utilizzando l' 'eventignore'opzione.

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

È anche possibile disabilitare solo il autocmd/ augroupcome definito dal plugin zip? Mi piace questo (+1), ma se per esempio hai un modo autocmdper disabilitare l'evidenziazione della sintassi e simili per file di grandi dimensioni (come è comune), lo disabiliterai anche come effetto collaterale ...
Martin Tournoij

@Carpetsmoker Non temporaneamente. Se conosci il nome del gruppo (in questo caso "zip"), puoi annullare la definizione di tutti gli autocmd definiti in quel gruppo con augroup zip | exe 'au!' | augroup END.
Jamessan,

10

Questo sembra al plugin "zip", che viene fornito con Vim e abilitato per impostazione predefinita.

:help zip ha alcune informazioni a riguardo, tra le altre cose:

PREVENIRE IL CARICAMENTO

Se per qualche motivo non desideri utilizzare vim per esaminare i file compressi, puoi inserire le seguenti due variabili nel tuo <.vimrc> per impedire il caricamento del plugin zip:

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

Dopo aver aggiunto queste 2 righe, sono in grado di aprire un .zipfile come qualsiasi altro file.

A proposito, non ne sapevo nulla; ma il messaggio di errore menzionato zip#Browse, quindi ho appena digitato :help ziped è arrivato sulla pagina della documentazione corretta :-)

Vedi Come posso navigare verso gli argomenti nella documentazione di Vim? per ulteriori informazioni e suggerimenti sul sistema di aiuto di Vim.

Funzionerà anche per il tarplugin, tranne per il fatto che usi g:loaded_tarPlugin& g_loaded_tar.


Questo è il trucco. Peccato che non riesco a +2 per il collegamento alla domanda di documentazione.
Roflo,

@Roflo Non posso prendere alcun credito per quel post, ecco tutto romainl lavoro 's :-)
Martin Tournoij
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.