Bram Moolenaar | d079690 | 2016-09-16 20:02:31 +0200 | [diff] [blame^] | 1 | *pi_zip.txt* For Vim version 8.0. Last change: 2016 Sep 13 |
Bram Moolenaar | c01140a | 2006-03-24 22:21:52 +0000 | [diff] [blame] | 2 | |
Bram Moolenaar | 910f66f | 2006-04-05 20:41:53 +0000 | [diff] [blame] | 3 | +====================+ |
| 4 | | Zip File Interface | |
| 5 | +====================+ |
Bram Moolenaar | 9835862 | 2005-11-28 22:58:23 +0000 | [diff] [blame] | 6 | |
Bram Moolenaar | ff03419 | 2013-04-24 18:51:19 +0200 | [diff] [blame] | 7 | Author: Charles E. Campbell <NdrOchip@ScampbellPfamily.AbizM> |
Bram Moolenaar | 9835862 | 2005-11-28 22:58:23 +0000 | [diff] [blame] | 8 | (remove NOSPAM from Campbell's email first) |
Bram Moolenaar | d079690 | 2016-09-16 20:02:31 +0200 | [diff] [blame^] | 9 | Copyright: Copyright (C) 2005-2015 Charles E Campbell *zip-copyright* |
Bram Moolenaar | 6be7f87 | 2012-01-20 21:08:56 +0100 | [diff] [blame] | 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! |
Bram Moolenaar | 9835862 | 2005-11-28 22:58:23 +0000 | [diff] [blame] | 19 | |
| 20 | ============================================================================== |
Bram Moolenaar | 251e191 | 2011-06-19 05:09:16 +0200 | [diff] [blame] | 21 | 1. Contents *zip* *zip-contents* |
Bram Moolenaar | 7263a77 | 2007-05-10 17:35:54 +0000 | [diff] [blame] | 22 | 1. Contents................................................|zip-contents| |
| 23 | 2. Usage...................................................|zip-usage| |
| 24 | 3. Additional Extensions...................................|zip-extension| |
| 25 | 4. History.................................................|zip-history| |
Bram Moolenaar | 9835862 | 2005-11-28 22:58:23 +0000 | [diff] [blame] | 26 | |
| 27 | ============================================================================== |
Bram Moolenaar | 251e191 | 2011-06-19 05:09:16 +0200 | [diff] [blame] | 28 | 2. Usage *zip-usage* *zip-manual* |
Bram Moolenaar | 9835862 | 2005-11-28 22:58:23 +0000 | [diff] [blame] | 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 | |
Bram Moolenaar | d079690 | 2016-09-16 20:02:31 +0200 | [diff] [blame^] | 36 | *zip-x* |
| 37 | x : may extract a listed file when the cursor is atop it |
| 38 | |
Bram Moolenaar | 7263a77 | 2007-05-10 17:35:54 +0000 | [diff] [blame] | 39 | OPTIONS |
Bram Moolenaar | 3577c6f | 2008-06-24 21:16:56 +0000 | [diff] [blame] | 40 | |
| 41 | *g:zip_nomax* |
| 42 | |
| 43 | If this variable exists and is true, the file window will not be |
| 44 | automatically maximized when opened. |
| 45 | |
| 46 | *g:zip_shq* |
Bram Moolenaar | 7263a77 | 2007-05-10 17:35:54 +0000 | [diff] [blame] | 47 | Different operating systems may use one or more shells to execute |
| 48 | commands. Zip will try to guess the correct quoting mechanism to |
| 49 | allow spaces and whatnot in filenames; however, if it is incorrectly |
| 50 | guessing the quote to use for your setup, you may use > |
| 51 | g:zip_shq |
Bram Moolenaar | 9964e46 | 2007-05-05 17:54:07 +0000 | [diff] [blame] | 52 | < which by default is a single quote under Unix (') and a double quote |
| 53 | under Windows ("). If you'd rather have no quotes, simply set |
| 54 | g:zip_shq to the empty string (let g:zip_shq= "") in your <.vimrc>. |
| 55 | |
Bram Moolenaar | 7263a77 | 2007-05-10 17:35:54 +0000 | [diff] [blame] | 56 | *g:zip_unzipcmd* |
| 57 | Use this option to specify the program which does the duty of "unzip". |
Bram Moolenaar | 3577c6f | 2008-06-24 21:16:56 +0000 | [diff] [blame] | 58 | It's used during browsing. By default: > |
Bram Moolenaar | 7263a77 | 2007-05-10 17:35:54 +0000 | [diff] [blame] | 59 | let g:zip_unzipcmd= "unzip" |
| 60 | < |
| 61 | *g:zip_zipcmd* |
| 62 | Use this option to specify the program which does the duty of "zip". |
Bram Moolenaar | 3577c6f | 2008-06-24 21:16:56 +0000 | [diff] [blame] | 63 | It's used during the writing (updating) of a file already in a zip |
Bram Moolenaar | 7263a77 | 2007-05-10 17:35:54 +0000 | [diff] [blame] | 64 | file; by default: > |
| 65 | let g:zip_zipcmd= "zip" |
| 66 | < |
Bram Moolenaar | d079690 | 2016-09-16 20:02:31 +0200 | [diff] [blame^] | 67 | *g:zip_extractcmd* |
| 68 | This option specifies the program (and any options needed) used to |
| 69 | extract a file from a zip archive. By default, > |
| 70 | let g:zip_extractcmd= g:zip_unzipcmd |
| 71 | < |
Bram Moolenaar | 00a927d | 2010-05-14 23:24:24 +0200 | [diff] [blame] | 72 | PREVENTING LOADING~ |
| 73 | |
| 74 | If for some reason you do not wish to use vim to examine zipped files, |
| 75 | you may put the following two variables into your <.vimrc> to prevent |
Bram Moolenaar | 24ea3ba | 2010-09-19 19:01:21 +0200 | [diff] [blame] | 76 | the zip plugin from loading: > |
Bram Moolenaar | 00a927d | 2010-05-14 23:24:24 +0200 | [diff] [blame] | 77 | |
| 78 | let g:loaded_zipPlugin= 1 |
| 79 | let g:loaded_zip = 1 |
| 80 | < |
Bram Moolenaar | 7263a77 | 2007-05-10 17:35:54 +0000 | [diff] [blame] | 81 | |
Bram Moolenaar | 9835862 | 2005-11-28 22:58:23 +0000 | [diff] [blame] | 82 | ============================================================================== |
Bram Moolenaar | 7263a77 | 2007-05-10 17:35:54 +0000 | [diff] [blame] | 83 | 3. Additional Extensions *zip-extension* |
| 84 | |
Bram Moolenaar | 6be7f87 | 2012-01-20 21:08:56 +0100 | [diff] [blame] | 85 | Apparently there are a number of archivers which generate zip files that |
Bram Moolenaar | 7263a77 | 2007-05-10 17:35:54 +0000 | [diff] [blame] | 86 | don't use the .zip extension (.jar, .xpi, etc). To handle such files, |
| 87 | place a line in your <.vimrc> file: > |
| 88 | |
| 89 | au BufReadCmd *.jar,*.xpi call zip#Browse(expand("<amatch>")) |
| 90 | < |
Bram Moolenaar | c236c16 | 2008-07-13 17:41:49 +0000 | [diff] [blame] | 91 | One can simply extend this line to accommodate additional extensions that |
Bram Moolenaar | 3577c6f | 2008-06-24 21:16:56 +0000 | [diff] [blame] | 92 | should be treated as zip files. |
Bram Moolenaar | 7263a77 | 2007-05-10 17:35:54 +0000 | [diff] [blame] | 93 | |
Bram Moolenaar | d079690 | 2016-09-16 20:02:31 +0200 | [diff] [blame^] | 94 | Alternatively, one may change *g:zipPlugin_ext* in one's .vimrc. |
| 95 | Currently (11/30/15) it holds: > |
| 96 | |
| 97 | let g:zipPlugin_ext= '*.zip,*.jar,*.xpi,*.ja,*.war,*.ear,*.celzip, |
| 98 | \ *.oxt,*.kmz,*.wsz,*.xap,*.docx,*.docm,*.dotx,*.dotm,*.potx,*.potm, |
| 99 | \ *.ppsx,*.ppsm,*.pptx,*.pptm,*.ppam,*.sldx,*.thmx,*.xlam,*.xlsx,*.xlsm, |
| 100 | \ *.xlsb,*.xltx,*.xltm,*.xlam,*.crtx,*.vdw,*.glox,*.gcsx,*.gqsx,*.epub' |
| 101 | |
Bram Moolenaar | 7263a77 | 2007-05-10 17:35:54 +0000 | [diff] [blame] | 102 | ============================================================================== |
Bram Moolenaar | 251e191 | 2011-06-19 05:09:16 +0200 | [diff] [blame] | 103 | 4. History *zip-history* {{{1 |
Bram Moolenaar | d079690 | 2016-09-16 20:02:31 +0200 | [diff] [blame^] | 104 | v28 Oct 08, 2014 * changed the sanity checks for executables to reflect |
| 105 | the command actually to be attempted in zip#Read() |
| 106 | and zip#Write() |
| 107 | * added the extraction of a file capability |
| 108 | Nov 30, 2015 * added *.epub to the |g:zipPlugin_ext| list |
| 109 | Sep 13, 2016 * added *.apk to the |g:zipPlugin_ext| list and |
| 110 | sorted the suffices. |
| 111 | v27 Jul 02, 2013 * sanity check: zipfile must have "PK" as its first |
| 112 | two bytes. |
| 113 | * modified to allow zipfile: entries in quickfix lists |
Bram Moolenaar | ff03419 | 2013-04-24 18:51:19 +0200 | [diff] [blame] | 114 | v26 Nov 15, 2012 * (Jason Spiro) provided a lot of new extensions that |
| 115 | are synonyms for .zip |
Bram Moolenaar | 6be7f87 | 2012-01-20 21:08:56 +0100 | [diff] [blame] | 116 | v25 Jun 27, 2011 * using keepj with unzip -Z |
| 117 | (consistent with the -p variant) |
Bram Moolenaar | ff03419 | 2013-04-24 18:51:19 +0200 | [diff] [blame] | 118 | * (Ben Staniford) now uses |
| 119 | has("win32unix") && executable("cygpath") |
| 120 | before converting to cygwin-style paths |
Bram Moolenaar | 251e191 | 2011-06-19 05:09:16 +0200 | [diff] [blame] | 121 | v24 Jun 21, 2010 * (Cédric Bosdonnat) unzip seems to need its filenames |
| 122 | fnameescape'd as well as shellquote'd |
| 123 | * (Motoya Kurotsu) inserted keepj before 0d to protect |
| 124 | jump list |
Bram Moolenaar | 3577c6f | 2008-06-24 21:16:56 +0000 | [diff] [blame] | 125 | v17 May 09, 2008 * arno caught a security bug |
| 126 | v15 Sep 07, 2007 * &shq now used if not the empty string for g:zip_shq |
Bram Moolenaar | 7263a77 | 2007-05-10 17:35:54 +0000 | [diff] [blame] | 127 | v14 May 07, 2007 * using b:zipfile instead of w:zipfile to avoid problem |
| 128 | when editing alternate file to bring up a zipfile |
Bram Moolenaar | 9964e46 | 2007-05-05 17:54:07 +0000 | [diff] [blame] | 129 | v10 May 02, 2006 * now using "redraw then echo" to show messages, instead |
| 130 | of "echo and prompt user" |
| 131 | * g:zip_shq provided to allow for quoting control for the |
| 132 | command being passed via :r! ... commands. |
Bram Moolenaar | 4c3f536 | 2006-04-11 21:38:50 +0000 | [diff] [blame] | 133 | v8 Apr 10, 2006 * Bram Moolenaar reported that he received an error message |
Bram Moolenaar | 9964e46 | 2007-05-05 17:54:07 +0000 | [diff] [blame] | 134 | due to "Pattern not found: ^.*\%0c"; this was caused by |
Bram Moolenaar | 4c3f536 | 2006-04-11 21:38:50 +0000 | [diff] [blame] | 135 | stridx finding a Name... at the beginning of the line; |
| 136 | zip.vim tried 4,$s/^.*\%0c//, but that doesn't work. |
| 137 | Fixed. |
Bram Moolenaar | 7b5f832 | 2006-03-23 22:47:08 +0000 | [diff] [blame] | 138 | v7 Mar 22, 2006 * escaped some characters that can cause filename handling |
Bram Moolenaar | 9964e46 | 2007-05-05 17:54:07 +0000 | [diff] [blame] | 139 | problems. |
Bram Moolenaar | 86e0108 | 2005-12-29 22:45:34 +0000 | [diff] [blame] | 140 | v6 Dec 21, 2005 * writing to files not in directories caused problems - |
Bram Moolenaar | 9964e46 | 2007-05-05 17:54:07 +0000 | [diff] [blame] | 141 | fixed (pointed out by Christian Robinson) |
Bram Moolenaar | 9835862 | 2005-11-28 22:58:23 +0000 | [diff] [blame] | 142 | v5 Nov 22, 2005 * report option workaround installed |
| 143 | v3 Oct 18, 2005 * <amatch> used instead of <afile> in autocmds |
| 144 | v2 Sep 16, 2005 * silenced some commands (avoiding hit-enter prompt) |
Bram Moolenaar | 9964e46 | 2007-05-05 17:54:07 +0000 | [diff] [blame] | 145 | * began testing under Windows; works thus far |
Bram Moolenaar | 9835862 | 2005-11-28 22:58:23 +0000 | [diff] [blame] | 146 | * filetype detection fixed |
| 147 | Nov 03, 2005 * handles writing zipfiles across a network using |
Bram Moolenaar | 9964e46 | 2007-05-05 17:54:07 +0000 | [diff] [blame] | 148 | netrw#NetWrite() |
Bram Moolenaar | 9835862 | 2005-11-28 22:58:23 +0000 | [diff] [blame] | 149 | v1 Sep 15, 2005 * Initial release, had browsing, reading, and writing |
| 150 | |
| 151 | ============================================================================== |
Bram Moolenaar | 7263a77 | 2007-05-10 17:35:54 +0000 | [diff] [blame] | 152 | vim:tw=78:ts=8:ft=help:fdm=marker |