Comment dire à Vim de ne pas essayer de décompresser un fichier

15

J'essaie d'ouvrir un .xlsxfichier dans Vim, mais j'ai une erreur en disant:

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

Je sais que c'est un fichier binaire, mais je veux faire quelques sommes de contrôle et probablement convertir en hexadécimal.

J'ai remarqué que si je change l'extension, Vim n'essaye plus de la décompresser. Ce qui m'amène à ma question:

Existe-t-il un moyen de dire à vim d'ouvrir un fichier sans essayer de le décompresser?

FWIW, j'utilise Vim 7.4 sous Windows 7.

Roflo
la source
J'obtiens la même erreur sur mon système Linux, donc cela ne semble pas être un comportement spécifique à Windows
Martin Tournoij
1
Par simple curiosité, pourquoi faites-vous vos sommes de contrôle / hex depuis vim?
Random832
@ Random832 à cette occasion, juste parce que c'est la première chose qui m'est venue à l'esprit. La plupart du temps, parce que je peux additionner une plage au lieu du fichier entier, et hex parce que je peux basculer d'avant en arrière avec raw.
Roflo

Réponses:

16

De telles fonctionnalités sont gérées par les autocmds . Afin de désactiver les autocmds pour une commande spécifique, vous pouvez utiliser :noautocmd(en abrégé :noau). Dans ce cas

:noau e foo.xlsx

ouvrira simplement le fichier brut plutôt que de déclencher les autocmds qui tentent d'ouvrir le fichier zip.

Vous pouvez également l'utiliser depuis votre shell:

$ vim -c 'noau e foo.xlsx'

Si vous voulez plus de granularité que de désactiver tous les autocmds, vous pouvez désactiver temporairement les BufRead/ BufReadPreautocmds en utilisant l' 'eventignore'option.

:set ei=BufRead,BufReadPre
:e foo.xlsx
:set ei=
jamessan
la source
Est-il également possible de désactiver uniquement le autocmd/ augrouptel que défini par le plugin zip? J'aime ça (+1), mais si vous avez par exemple un autocmdpour désactiver la surbrillance de la syntaxe et tel pour les gros fichiers (comme c'est courant), alors vous le désactiverez aussi comme effet secondaire ...
Martin Tournoij
@Carpetsmoker Pas temporairement. Si vous connaissez le nom du groupe (dans ce cas, "zip"), vous pouvez annuler la définition de tous les autocmds définis dans ce groupe avec augroup zip | exe 'au!' | augroup END.
jamessan
10

Cela semble être le plugin "zip", qui est livré avec Vim et activé par défaut.

:help zip a quelques informations à ce sujet, entre autres:

PRÉVENIR LE CHARGEMENT

Si, pour une raison quelconque, vous ne souhaitez pas utiliser vim pour examiner les fichiers compressés, vous pouvez placer les deux variables suivantes dans votre <.vimrc> pour empêcher le chargement du plugin zip:

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

Après avoir ajouté ces 2 lignes, je peux ouvrir un .zipfichier comme n'importe quel autre fichier.

Soit dit en passant, je n'en savais rien non plus; mais le message d'erreur mentionné zip#Browse, donc je viens de taper :help zipet d'atterrir sur la bonne page de documentation :-)

Voir Comment accéder aux rubriques de la documentation de Vim? pour plus d'informations et de conseils sur le système d'aide de Vim.

Cela fonctionnera également pour le tarplugin, sauf que vous utilisez g:loaded_tarPlugin& g_loaded_tar.

Martin Tournoij
la source
Ça fait l'affaire. Dommage que je ne puisse pas +2 pour le lien vers la question de documentation.
Roflo
@Roflo Je ne peux pas prendre de crédit pour ce poste, qui est tout romainl travail de » :-)
Martin Tournoij