neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

pi_zip.txt (9142B)


      1 *pi_zip.txt*	Nvim
      2 
      3 			+====================+
      4 			| Zip File Interface |
      5 			+====================+
      6 
      7 Author:  Charles E. Campbell  <NcampObell@SdrPchip.AorgM-NOSPAM>
      8   (remove NOSPAM from Campbell's email first)
      9 Copyright: Copyright (C) 2005-2015 Charles E Campbell	 *zip-copyright*
     10 The VIM LICENSE (see |copyright|) applies to the files in this
     11 package, including zipPlugin.vim, zip.vim, and pi_zip.vim.  except use
     12 "zip.vim" instead of "VIM".  Like anything else that's free, zip.vim
     13 and its associated files are provided as is and comes with no
     14 warranty of any kind, either expressed or implied.  No guarantees of
     15 merchantability.  No guarantees of suitability for any purpose.  By
     16 using this plugin, you agree that in no event will the copyright
     17 holder be liable for any damages resulting from the use of this
     18 software. Use at your own risk!
     19 
     20 ==============================================================================
     21 1. Contents						*zip* *zip-contents*
     22   1. Contents................................................|zip-contents|
     23   2. Usage...................................................|zip-usage|
     24   3. Additional Extensions...................................|zip-extension|
     25   4. History.................................................|zip-history|
     26 
     27 ==============================================================================
     28 2. Usage						*zip-usage* *zip-manual*
     29 
     30   When one edits a `*.zip` file, this plugin will handle displaying a
     31   contents page.  Select a file to edit by moving the cursor atop
     32   the desired file, then hit the <return> key.  After editing, one may
     33   also write to the file.  Currently, one may not make a new file in
     34   zip archives via the plugin.
     35 
     36   COMMANDS~
     37 							*zip-x*
     38   x : extract a listed file when the cursor is atop it
     39 
     40   OPTIONS~
     41 
     42 						*g:zip_nomax*
     43 
     44   If this variable exists and is true, the file window will not be
     45   automatically maximized when opened.
     46 
     47 						*g:zip_shq*
     48   Different operating systems may use one or more shells to execute
     49   commands.  Zip will try to guess the correct quoting mechanism to
     50   allow spaces and whatnot in filenames; however, if it is incorrectly
     51   guessing the quote to use for your setup, you may use >
     52 g:zip_shq
     53 <   which by default is a single quote under Unix (') and a double quote
     54   under Windows (").  If you'd rather have no quotes, simply set
     55   g:zip_shq to the empty string (let g:zip_shq= "") in your <.vimrc>.
     56 
     57 						*g:zip_unzipcmd*
     58   Use this option to specify the program which does the duty of "unzip".
     59   It's used during browsing. By default: >
     60 let g:zip_unzipcmd= "unzip"
     61 <
     62 						*g:zip_zipcmd*
     63   Use this option to specify the program which does the duty of "zip".
     64   It's used during the writing (updating) of a file already in a zip
     65   file; by default: >
     66 let g:zip_zipcmd= "zip"
     67 <
     68 						*g:zip_extractcmd*
     69   This option specifies the program (and any options needed) used to
     70   extract a file from a zip archive.  By default, >
     71 let g:zip_extractcmd= g:zip_unzipcmd
     72 <
     73 						*g:zip_exec*
     74   For security reasons, one may prevent that Vim runs executables
     75   automatically when opening a buffer.  This option (default: "1")
     76   can be used to prevent executing the "unzip" command when set to
     77   "0": >
     78 let g:zip_exec=0
     79 <
     80   FALLBACK TO POWERSHELL CORE~
     81 
     82   This plugin will first attempt to use the (more capable) GNU zip/unzip
     83   commands.  If these commands are not available or fail, and the user is
     84   using PowerShell Core (i.e., the 'shell' option matches "pwsh"), the
     85   plugin will fall back to a PowerShell Core cmdlet.  The PowerShell Core
     86   cmdlets are limited: they cannot write or extract files within
     87   subdirectories of a zip archive.  The advantage, however, is that no
     88   separate unzip binary needs to be installed.
     89 
     90   PREVENTING LOADING~
     91 
     92   If for some reason you do not wish to use vim to examine zipped files,
     93   you may put the following two variables into your <.vimrc> to prevent
     94   the zip plugin from loading: >
     95 
     96 let g:loaded_zipPlugin= 1
     97 let g:loaded_zip      = 1
     98 <
     99 
    100 ==============================================================================
    101 3. Additional Extensions					*zip-extension*
    102 
    103   Apparently there are a number of archivers which generate zip files that
    104   don't use the .zip extension (.jar, .xpi, etc).  To handle such files,
    105   place a line in your <.vimrc> file: >
    106 
    107 au BufReadCmd *.jar,*.xpi call zip#Browse(expand("<amatch>"))
    108 <
    109   One can simply extend this line to accommodate additional extensions that
    110   should be treated as zip files.
    111 
    112   Alternatively, one may change *g:zipPlugin_ext* in one's .vimrc.
    113   Currently (as of October 2025) it holds: >
    114 
    115        let g:zipPlugin_ext='*.aar,*.apk,*.celzip,*.crtx,*.docm,*.docx,
    116       \ *.dotm,*.dotx,*.ear,*.epub,*.gcsx,*.glox,*.gqsx,*.ja,*.jar,*.kmz,
    117       \ *.odb,*.odc,*.odf,*.odg,*.odi,*.odm,*.odp,*.ods,*.odt,*.otc,*.otf,
    118       \ *.otg,*.oth,*.oti,*.otp,*.ots,*.ott,*.oxt,*.pkpass,*.potm,*.potx,
    119       \ *.ppam,*.ppsm,*.ppsx,*.pptm,*.pptx,*.sldx,*.thmx,*.vdw,*.war,*.whl,
    120       \ *.wsz, *.xap,*.xlam,*.xlsb,*.xlsm,*.xlsx,*.xltm,*.xltx,*.xpi,*.zip'
    121 
    122 ==============================================================================
    123 4. History							*zip-history* {{{1
    124   unreleased:
    125       Sep 19, 2025 * support PowerShell Core
    126       Jul 12, 2025 * drop ../ on write to prevent path traversal attacks
    127       Mar 11, 2025 * handle filenames with leading '-' correctly
    128       Aug 21, 2024 * simplify condition to detect MS-Windows
    129       Aug 18, 2024 * correctly handle special globbing chars
    130       Aug 05, 2024 * clean-up and make it work with shellslash on Windows
    131       Aug 05, 2024 * workaround for the FreeBSD's unzip
    132       Aug 04, 2024 * escape '[' in name of file to be extracted
    133       Jul 30, 2024 * fix opening remote zipfile
    134       Jul 24, 2024 * use delete() function
    135       Jul 23, 2024 * fix 'x' command
    136       Jun 16, 2024 * handle whitespace on Windows properly (#14998)
    137   v33 Dec 07, 2021 * `*.xlam` mentioned twice in zipPlugin
    138   v32 Oct 22, 2021 * to avoid an issue with a vim 8.2 patch, zipfile: has
    139 	      been changed to zipfile:// . This often shows up
    140 	      as zipfile:/// with zipped files that are root-based.
    141   v29 Apr 02, 2017 * (Klartext) reported that an encrypted zip file could
    142 	      opened but the swapfile held unencrypted contents.
    143 	      The solution is to edit the contents of a zip file
    144 	      using the |:noswapfile| modifier.
    145   v28 Oct 08, 2014 * changed the sanity checks for executables to reflect
    146 	      the command actually to be attempted in zip#Read()
    147 	      and zip#Write()
    148 	    * added the extraction of a file capability
    149       Nov 30, 2015 * added `*.epub` to the |g:zipPlugin_ext| list
    150       Sep 13, 2016 * added `*.apk` to the |g:zipPlugin_ext| list and
    151 	      sorted the suffices.
    152   v27 Jul 02, 2013 * sanity check: zipfile must have "PK" as its first
    153 	      two bytes.
    154 	    * modified to allow zipfile: entries in quickfix lists
    155   v26 Nov 15, 2012 * (Jason Spiro) provided a lot of new extensions that
    156 	      are synonyms for .zip
    157   v25 Jun 27, 2011 * using keepj with unzip -Z
    158 	      (consistent with the -p variant)
    159 	    * (Ben Staniford) now uses
    160 		has("win32unix") && executable("cygpath")
    161 	      before converting to cygwin-style paths
    162   v24 Jun 21, 2010 * (Cédric Bosdonnat) unzip seems to need its filenames
    163 	      fnameescape'd as well as shellquote'd
    164 	    * (Motoya Kurotsu) inserted keepj before 0d to protect
    165 	      jump list
    166   v17 May 09, 2008 * arno caught a security bug
    167   v15 Sep 07, 2007 * &shq now used if not the empty string for g:zip_shq
    168   v14 May 07, 2007 * using b:zipfile instead of w:zipfile to avoid problem
    169                      when editing alternate file to bring up a zipfile
    170   v10 May 02, 2006 * now using "redraw then echo" to show messages, instead
    171                      of "echo and prompt user"
    172 	    * g:zip_shq provided to allow for quoting control for the
    173 	      command being passed via :r! ... commands.
    174   v8 Apr 10, 2006 * Bram Moolenaar reported that he received an error message
    175                     due to `Pattern not found: ^.*\%0c`; this was caused by
    176 	     stridx finding a Name... at the beginning of the line;
    177 	     zip.vim tried `4,$s/^.*\%0c//`, but that doesn't work.
    178 	     Fixed.
    179   v7 Mar 22, 2006 * escaped some characters that can cause filename handling
    180                     problems.
    181   v6 Dec 21, 2005 * writing to files not in directories caused problems -
    182                     fixed (pointed out by Christian Robinson)
    183   v5 Nov 22, 2005 * report option workaround installed
    184   v3 Oct 18, 2005 * <amatch> used instead of <afile> in autocmds
    185   v2 Sep 16, 2005 * silenced some commands (avoiding hit-enter prompt)
    186                   * began testing under Windows; works thus far
    187 	   * filetype detection fixed
    188      Nov 03, 2005 * handles writing zipfiles across a network using
    189                     netrw#NetWrite()
    190   v1 Sep 15, 2005 * Initial release, had browsing, reading, and writing
    191 
    192 ==============================================================================
    193 vim:tw=78:ts=8:ft=help:noet:norl:fdm=marker