lbrayner / vim-rzip

Extends zip.vim to browse and write nested zip files
https://www.vim.org/scripts/script.php?script_id=5760
32 stars 3 forks source link
plugin plugin-vim plugins recursion recursive vim vimscript write zip

asciicast

Extends stock zipPlugin.vim to allow recursively browsing and writing Zip files.

VimL and system calls only (zip, unzip and copy file).

Requirements

✝ Confirmed working on Vim 7.4-1024 for Windows.

To browse

In $PATH:

To write

In $PATH:

Installation

Vim 8.0+ (+packages)

If you're using Vim 8.0 or greater (if :echo has("packages") returns 1), you can add vim-rzip as a package.

When you're done with the following steps make sure to read about packages: :h packages.

$ mkdir -p ~/.vim/pack/bundle/start/vim-rzip
$ unzip ~/Downloads/vim-rzip.zip -d ~/.vim/pack/bundle/start/vim-rzip

Or you can clone the Git repository:

$ mkdir -p ~/.vim/pack/bundle/start
$ cd ~/.vim/pack/bundle/start
start $ git clone 'https://github.com/lbrayner/vim-rzip'
$ mkdir -p ~/.vim/pack/bundle/start
$ cd ~/.vim
.vim $ git submodule add 'https://github.com/lbrayner/vim-rzip' pack/bundle/start/vim-rzip

This will install vim-rzip as a git submodule.

Plugin manager

Either vim-pathogen or Vundle are recommended.

Verifying the installation

When you open a file with any of these extensions (per default) — .apk, .celzip, .crtx, .docm, .docx, .dotm, .dotx, .ear, .epub, .gcsx, .glox, .gqsx, .ja, .jar, .kmz, .oxt, .potm, .potx, .ppam, .ppsm, .ppsx, .pptm, .pptx, .sldx, .thmx, .vdw, .war, .wsz, .xap, .xlam, .xlam, .xlsb, .xlsm, .xlsx, .xltm, .xltx, .xpi, .zip — you'll see the default zipPlugin.vim message, except that: the plugin name is rzip.vim; and the version, on the first line, should read something like v014.

Configuration

Extra file extensions can be added with g:rzipPlugin_extra_ext. For example:

let g:rzipPlugin_extra_ext = '*.odt,*.mfh'

Appendix

On Unix-like operating systems, just install the zip and unzip packages.

You can get the unzip.exe binary for Windows here.

A zip-compatible program need only implement the -u (update) command line switch. An example of a zip-compatible dosbatch script for Windows using 7zip:

@echo off

if "%~1" == "-u" (
    if not "%~2" == "" (
        if not "%~3" == "" (
            if "%~4" == "" (
                7z u %2 %3
                exit /b 0
            )
        )
    )
)

7z %*

Save this as zip.bat and put in your $PATH.