Jak powiedzieć Vimowi, aby nie próbował rozpakowywać pliku

15

Próbuję otworzyć .xlsxplik w Vimie, ale wystąpił błąd z informacją:

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

Wiem, że to plik binarny, ale chcę zrobić sumy kontrolne i prawdopodobnie przekonwertować na hex.

Zauważyłem, że jeśli zmienię rozszerzenie, Vim nie będzie już próbował go rozpakować. Co prowadzi mnie do mojego pytania:

Czy istnieje sposób, aby powiedzieć vimowi, aby otworzył plik bez próby rozpakowania go?

FWIW, używam Vima 7.4 pod Windows 7.

Roflo
źródło
W moim systemie Linux pojawia się ten sam błąd, więc nie wydaje się, że jest to zachowanie specyficzne dla systemu Windows
Martin Tournoij,
1
Właśnie z ciekawości, dlaczego robisz swoje sumy kontrolne / hex z poziomu vima?
Random832,
@ Random832 z tej okazji, tylko dlatego, że to pierwsza rzecz, jaka przyszła mi do głowy. W większości przypadków, ponieważ mogę sumować zakres zamiast całego pliku, i hex, ponieważ mogę przełączać się w przód iw tył za pomocą raw.
Roflo,

Odpowiedzi:

16

Takie funkcje są obsługiwane przez autocmds . Aby wyłączyć autocmds dla określonego polecenia, możesz użyć :noautocmd(w skrócie :noau). W tym przypadku

:noau e foo.xlsx

po prostu otworzy plik RAW zamiast uruchamiać autocmds, które próbują otworzyć plik zip.

Możesz także użyć tego ze swojej powłoki:

$ vim -c 'noau e foo.xlsx'

Jeśli chcesz uzyskać większą szczegółowość niż wyłączenie wszystkich autocmds, możesz tymczasowo wyłączyć BufRead/ BufReadPreautocmds za pomocą 'eventignore'opcji.

:set ei=BufRead,BufReadPre
:e foo.xlsx
:set ei=
jamessan
źródło
Czy można również wyłączyć tylko autocmd/ augroupzgodnie z definicją wtyczki zip? Podoba mi się to (+1), ale jeśli na przykład masz autocmdwyłączyć podświetlanie składni i takie dla dużych plików (co jest powszechne), to również wyłączysz to jako efekt uboczny ...
Martin Tournoij
@Carpetsmoker Nie tymczasowo. Jeśli znasz nazwę grupy (w tym przypadku „zip”), możesz niezdefiniować wszystkie autocmdy zdefiniowane w tej grupie za pomocą augroup zip | exe 'au!' | augroup END.
jamessan
10

Wydaje się, że jest to wtyczka „zip”, która jest dostarczana z Vimem i domyślnie włączona.

:help zip ma pewne informacje na ten temat, między innymi:

ZAPOBIEGANIE ŁADOWANIU

Jeśli z jakiegoś powodu nie chcesz używać vima do sprawdzania spakowanych plików, możesz umieścić następujące dwie zmienne w swoim <.vimrc>, aby zapobiec ładowaniu się wtyczki zip:

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

Po dodaniu tych 2 wierszy mogę otworzyć .zipplik jak każdy inny plik.

Nawiasem mówiąc, też o tym nie wiedziałem; ale wspomniany komunikat o błędzie zip#Browse, więc właśnie wpisałem :help zipi wylądowałem na właściwej stronie dokumentacji :-)

Zobacz Jak nawigować do tematów w dokumentacji Vima? po więcej informacji i wskazówek na temat systemu pomocy Vima.

Będzie to również działać dla tarwtyczki, z wyjątkiem użycia g:loaded_tarPlugin& g_loaded_tar.

Martin Tournoij
źródło
To załatwia sprawę. Szkoda, że ​​nie mogę +2 za linkowanie do pytania dotyczącego dokumentacji.
Roflo,
@Roflo nie mogę brać żadnych kredytów na tym stanowisku, to wszystko romainl praca „s :-)
Martin Tournoij