ファイルを解凍しようとしないようにvimに指示する方法


15

.xlsxVimでファイルを開こうとしていますが、次のエラーが表示されました。

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

バイナリファイルであることは知っていますが、いくつかのチェックサムを行い、おそらく16進数に変換したいと思います。

拡張子を変更しても、Vimはそれを解凍しようとしないことに気付きました。それは私の質問に私を導きます:

ファイルを解凍せずに開くようにvimに指示する方法はありますか?

FWIW、私はWindows 7でVim 7.4を使用しています。


Windows固有の振る舞いではないようですので、私は、私のLinuxシステム上で同じエラーを取得する
マーティンTournoij

1
好奇心から、なぜvim内からチェックサム/ hexを行うのですか?
Random832

@ Random832この機会に、それが私の頭に浮かんだ最初のものだという理由だけで。他のほとんどの場合、ファイル全体ではなく範囲をチェックサムできるため、およびrawを使用して前後に切り替えることができるため、hexを使用できます。
ロフロ

回答:


16

このような機能はautocmdsによって処理されます。特定のコマンドのautocmdsを無効にするには、:noautocmd(省略形:noau)を使用できます。この場合

:noau e foo.xlsx

zipファイルを開こうとするautocmdをトリガーするのではなく、単純にrawファイルを開きます。

シェルからこれを使用することもできます。

$ vim -c 'noau e foo.xlsx'

すべてのautocmdを無効にするよりも詳細な情報が必要な場合は、オプションを使用してBufRead/ BufReadPreautocmdsを一時的に無効にすることができ'eventignore'ます。

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

zipプラグインで定義されているautocmd/ のみを無効にすることもできaugroupますか?Iこの(1)等が挙げられるが、例えば、あなたが持っている場合autocmd(一般的であるように)大きなファイルに対して無効な構文の強調表示などへの、あなたは意志無効副作用として...ということ
マーティンTournoij

@Carpetsmoker一時的ではありません。グループ名(この場合は「zip」)がわかっている場合は、そのグループで定義されているすべてのautocmdをで定義解除できますaugroup zip | exe 'au!' | augroup END
ジェームスサン

10

これは、Vimに同梱され、デフォルトで有効になっている「zip」プラグインのようです。

:help zip いくつかの情報があります:

ローディングの防止

何らかの理由でvimを使用して圧縮ファイルを調べたくない場合は、次の2つの変数を<.vimrc>に追加して、zipプラグインがロードされないようにします。

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

これらの2行を追加すると、.zipファイルを他のファイルと同様に開くことができます。

ちなみに、これについても知りませんでした。しかし、エラーメッセージが言及されたzip#Browseので、私はちょうど入力:help zipして正しいドキュメントページに着陸しました:-)

参照してください、私はVimのドキュメントでトピックに移動するにはどうすればよいですか?Vimのヘルプシステムに関する詳細情報とヒントについては、

tarを使用する場合を除き、これはプラグインでも機能します。g:loaded_tarPluging_loaded_tar


それはトリックです。残念ですが、ドキュメンテーションの質問へのリンクを+2することはできません。
ロフロ

@Roflo私はその投稿にクレジットをとることができません、それはすべてromainlの仕事です:
マーティントゥルノイ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.