pi_tar.txt For Vim version 9.0. Last change: 2022 Oct 17
| Tar File Interface |
Author: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
(remove NOSPAM from Campbell's email first)
Copyright 2005-2017: tar-copyright
The VIM LICENSE (see copyright) applies to the files in this
package, including tarPlugin.vim, tar.vim, and pi_tar.txt. Like
anything else that's except use "tar.vim" instead of "VIM". Like
anything else that's free, tar.vim and its associated files are
provided *as is* and comes with no warranty of any kind, either
expressed or implied. No guarantees of merchantability. No
guarantees of suitability for any purpose. By using this plugin, you
agree that in no event will the copyright holder be liable for any
damages resulting from the use of this software. Use at your own risk!
1. Contents tar tar-contents
2. Usage tar-usage tar-manual
When one edits a *.tar file, this plugin will handle displaying a
contents page. Select a file to edit by moving the cursor atop
the desired file, then hit the <return> key. After editing, one may
also write to the file. Currently, one may not make a new file in
tar archives via the plugin.
This command copies, if necessary, the tarball to the .vim or vimfiles
directory using the first writable directory in the 'runtimepath'
when no [vimhome] is specified. Otherwise, the [vimhome] argument
allows the user to specify that directory, instead.
The copy is done using the command in g:tar_copycmd , which is
cp for cygwin, unix, macunix
copy for windows (32, 95, 64, 16)
The extraction is done with the command specified with
g:tar_extractcmd , which by default is
This command will attempt to show the differences between the tarball
version of a file and the associated file on the system. In order to
find that file on the system, the script uses the path associated with
the file mentioned in the tarball. If the current directory is not
correct for that path, :TarDiff will fail to find the associated file.
If the [filename] is given, that that filename (and path) will be used
to specify the associated file.
If for some reason you do not wish to use vim to examine tar'd files,
you may put the following two variables into your <.vimrc> to prevent
the tar plugin from loading:
let g:loaded_tarPlugin= 1
let g:loaded_tar = 1
3. Options tar-options
These options are variables that one may change, typically in one's
Variable Value Explanation
g:tar_browseoptions "Ptf" used to get a list of contents
g:tar_readoptions "OPxf" used to extract a file from a tarball
g:tar_cmd "tar" the name of the tar program
g:tar_nomax 0 if true, file window will not be maximized
g:tar_secure undef if exists:
"--"s will be used to prevent unwanted
option expansion in tar commands.
Please be sure that your tar command
accepts "--"; Posix compliant tar
utilities do accept them.
if not exists:
The tar plugin will reject any tar
files or member files that begin with
Not all tar's support the "--" which is why
it isn't default.
g:tar_writeoptions "uf" used to update/replace a file
4. History tar-history
v31 Apr 02, 2017 * (klartext) reported that browsing encrypted
files in a zip archive created unencrypted
swap files. I am applying a similar fix
used on zip.vim to tar.vim: new buffers
are opened with :noswapfile.
May 16, 2017 * When the mouse option isn't empty, the
leftmouse can be used to select a file
in the tar-file listing.
v30 Apr 22, 2014 * .tgz files are ambiguous: they may have been
compressed with either gzip or bzip2. Tar.vim
disambiguates by using unix's "file" command.
Feb 18, 2016 * Changed =~ to =~# where appropriate
Feb 18, 2017 * Now also permits xz decompression
v28 Jun 23, 2011 * a few more decompression options (tbz tb2 txz)
v27 May 31, 2011 * moved cygwin detection before g:tar_copycmd
* inserted additional :keepj modifiers
* changed silent to sil! (:silent)
v26 Aug 09, 2010 * uses buffer-local instead of window variables
to hold tarfile name
* inserted keepj before 0d to protect jump list
v25 Jun 19, 2010 * (Jan Steffens) added support for xz
v24 Apr 07, 2009 * :Untarvim command implemented
Sep 28, 2009 * Added lzma support
v22 Aug 08, 2008 * security fixes
v16 Jun 06, 2008 * tarfile:: used instead of tarfile: when
editing files inside tarballs. Fixes a
problem with tarballs called things like
c:\abc.tar. (tnx to Bill McCarthy)
v14 May 09, 2008 * arno caught a security bug
May 28, 2008 * various security improvements. Now requires
patch 299 which provides the fnameescape()
May 30, 2008 * allows one to view *.gz and *.bz2 files that
are in *.tar files.
v12 Sep 07, 2007 * &shq now used if not the empty string for
v10 May 02, 2006 * now using "redraw then echo" to show messages,
instead of "echo and prompt user"
v9 May 02, 2006 * improved detection of masquerading as tar file
v8 May 02, 2006 * allows editing of files that merely masquerade
as tar files
v7 Mar 22, 2006 * work on making tar plugin work across network
Mar 27, 2006 * g:tar_cmd now available for users to change
the name of the tar program to be used. By
default, of course, it's "tar".
v6 Dec 21, 2005 * writing to files not in directories caused
problems - fixed (pointed out by
v5 Nov 22, 2005 * report option workaround installed
v3 Sep 16, 2005 * handles writing files in an archive back to
Oct 18, 2005 * <amatch> used instead of <afile> in autocmds
Oct 18, 2005 * handles writing to compressed archives
Nov 03, 2005 * handles writing tarfiles across a network
v2 * converted to use Vim7's new autoload feature
by Bram Moolenaar
v1 (original) * Michael Toren