So weisen Sie vim an, keine Datei zu entpacken

15

Ich versuche, eine .xlsxDatei in Vim zu öffnen, erhalte jedoch die Fehlermeldung:

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

Ich weiß, dass es eine Binärdatei ist, aber ich möchte einige Prüfsummen durchführen und wahrscheinlich in Hex konvertieren.

Ich habe festgestellt, dass Vim nicht mehr versucht, die Erweiterung zu entpacken, wenn ich sie ändere. Was mich zu meiner Frage führt:

Gibt es eine Möglichkeit, vim anzuweisen, eine Datei zu öffnen, ohne sie zu entpacken?

FWIW, ich benutze Vim 7.4 unter Windows 7.

Roflo
quelle
Auf meinem Linux-System wird derselbe Fehler
angezeigt
1
Nur aus Neugier, warum machst du deine Checksummen / Hex aus vim heraus?
Random832
@ Random832 bei dieser Gelegenheit, nur weil es das erste ist, was mir in den Sinn kam. Die meisten anderen Male, weil ich einen Bereich anstelle der gesamten Datei prüfen kann, und hex, weil ich mit raw hin und her wechseln kann.
Roflo

Antworten:

16

Diese Funktionalität wird von autocmds übernommen . Um autocmds für einen bestimmten Befehl zu deaktivieren, können Sie :noautocmd(abgekürzt :noau) verwenden. In diesem Fall

:noau e foo.xlsx

öffnet einfach die RAW-Datei, anstatt die AutocMDS auszulösen, die versuchen, die ZIP-Datei zu öffnen.

Sie können dies auch von Ihrer Shell aus verwenden:

$ vim -c 'noau e foo.xlsx'

Wenn Sie mehr Granularität wünschen, als alle automatischen Befehle zu deaktivieren, können Sie den Befehl BufRead/ BufReadPreautocmds mithilfe der 'eventignore'Option vorübergehend deaktivieren .

:set ei=BufRead,BufReadPre
:e foo.xlsx
:set ei=
Jamessan
quelle
Ist es auch möglich, nur das autocmd/ augroupwie vom zip-Plugin definiert zu deaktivieren ? Ich mag das (+1), aber wenn Sie zum Beispiel ein autocmdSyntax-Highlight und so etwas für große Dateien deaktivieren müssen (wie es üblich ist), dann werden Sie das auch als Nebeneffekt deaktivieren ...
Martin Tournoij
@Carpetsmoker Nicht vorübergehend. Wenn Sie den Gruppennamen kennen (in diesem Fall "zip"), können Sie alle in dieser Gruppe definierten Autocmds mit aufheben augroup zip | exe 'au!' | augroup END.
Jamessan
10

Dies scheint das "zip" -Plugin zu sein, das im Lieferumfang von Vim enthalten und standardmäßig aktiviert ist.

:help zip hat einige Informationen darüber, unter anderem:

VERHINDERN DES LADENS

Wenn Sie aus irgendeinem Grund nicht mit vim gezippte Dateien untersuchen möchten, können Sie die folgenden zwei Variablen in Ihre <.vimrc> einfügen, um zu verhindern, dass das zip-Plugin geladen wird:

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

Nach dem Hinzufügen dieser beiden Zeilen kann ich eine .zipDatei wie jede andere Datei öffnen .

Das wusste ich übrigens auch nicht; habe aber die fehlermeldung erwähnt zip#Browse, also habe ich gerade getippt :help zipund bin auf der richtigen dokumentationsseite gelandet :-)

Siehe Wie navigiere ich zu Themen in der Dokumentation von Vim? Weitere Informationen und Tipps zum Hilfesystem von Vim.

Dies funktioniert auch für das tarPlugin, außer Sie verwenden g:loaded_tarPlugin& g_loaded_tar.

Martin Tournoij
quelle
Das macht den Trick. Schade, ich kann nicht +2 für den Link zur Dokumentationsfrage.
Roflo
@Roflo Ich kann den Beitrag nicht gutschreiben, das ist alles Romainls Arbeit :-)
Martin Tournoij