Làm thế nào để nói với vim không cố gắng giải nén một tập tin


15

Tôi đang cố mở một .xlsxtệp trong Vim, nhưng gặp lỗi:

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

Tôi biết đó là một tệp nhị phân, nhưng tôi muốn thực hiện một số tổng kiểm tra và có thể chuyển đổi thành hex.

Tôi nhận thấy rằng nếu tôi thay đổi tiện ích mở rộng, Vim không còn cố gắng giải nén nó. Điều này dẫn tôi đến câu hỏi của tôi:

Có cách nào để bảo vim mở tệp mà không cố giải nén không?

FWIW, tôi đang sử dụng Vim 7.4 trong Windows 7.


Tôi gặp lỗi tương tự trên hệ thống Linux của mình, vì vậy dường như đó không phải là hành vi cụ thể của Windows
Martin Tournoij

1
Vì tò mò, tại sao bạn lại thực hiện tổng kiểm tra / hex từ bên trong vim?
Random832

@ Random832 trong dịp này, chỉ vì đó là điều đầu tiên tôi nghĩ đến. Hầu hết các lần khác, vì tôi có thể kiểm tra một phạm vi thay vì toàn bộ tệp và hex vì tôi có thể chuyển đổi qua lại với raw.
Roflo

Câu trả lời:


16

Chức năng như thế này được xử lý bởi autocmds . Để tắt autocmds cho một lệnh cụ thể, bạn có thể sử dụng :noautocmd(viết tắt :noau). Trong trường hợp này

:noau e foo.xlsx

sẽ chỉ đơn giản là mở tệp thô chứ không kích hoạt các autocmds cố gắng mở tệp zip.

Bạn cũng có thể sử dụng cái này từ vỏ của bạn:

$ vim -c 'noau e foo.xlsx'

Nếu bạn muốn có độ chi tiết cao hơn việc vô hiệu hóa tất cả autocmds, bạn có thể tạm thời vô hiệu hóa BufRead/ BufReadPreautocmds bằng 'eventignore'tùy chọn.

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

Có phải cũng có thể vô hiệu hóa chỉ autocmd/ augroupnhư được xác định bởi plugin zip không? Tôi thích điều này (+1), nhưng nếu bạn có ví dụ autocmdđể tắt tính năng tô sáng cú pháp và như vậy đối với các tệp lớn (như thông thường), thì bạn cũng sẽ vô hiệu hóa nó như một hiệu ứng phụ ...
Martin Tournoij

@Carpetsmoker Không tạm thời. Nếu bạn biết tên nhóm (trong trường hợp này là "zip"), bạn có thể xác định tất cả các autocmds được xác định trong nhóm đó với augroup zip | exe 'au!' | augroup END.
jamessan

10

Đây dường như là plugin "zip", được cung cấp cùng với Vim và được bật theo mặc định.

:help zip có một số thông tin về nó, trong số những thứ khác:

PHÒNG NGỪA

Nếu vì lý do nào đó bạn không muốn sử dụng vim để kiểm tra các tệp được nén, bạn có thể đặt hai biến sau vào <.vimrc> để ngăn plugin zip tải:

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

Sau khi thêm 2 dòng này, tôi có thể mở một .ziptệp như bất kỳ tệp nào khác.

Nhân tiện, tôi cũng không biết về điều này; nhưng thông báo lỗi được đề cập zip#Browse, vì vậy tôi chỉ cần gõ :help zipvà hạ cánh trên trang tài liệu bên phải :-)

Xem Làm cách nào để điều hướng đến các chủ đề trong tài liệu của Vim? để biết thêm thông tin và mẹo về hệ thống trợ giúp của Vim.

Điều này cũng sẽ làm việc cho tarplugin, ngoại trừ bạn sử dụng g:loaded_tarPlugin& g_loaded_tar.


Đó là mẹo. Quá tệ, tôi không thể +2 để liên kết đến câu hỏi tài liệu.
Roflo

@Roflo Tôi không thể nhận bất kỳ khoản tín dụng nào cho bài đăng đó, đó là tất cả công việc của romainl :-)
Martin Tournoij
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.