Shell Command Guessing
**********************
Based upon the name of a file, Dired tries to guess what shell
command you might want to apply to it. For example, if you have point
on a file named `foo.tar' and you press `!', Dired will guess you want
to `tar xvf' it and suggest that as the default shell command.
The default is mentioned in brackets and you can type `M-p' to get
the default into the minibuffer and then edit it, e.g., to change `tar
xvf' to `tar tvf'. If there are several commands for a given file,
e.g., `xtex' and `dvips' for a `.dvi' file, you can type `M-p' several
times to see each of the matching commands.
Dired only tries to guess a command for a single file, never for a
list of marked files.
`dired-guess-shell-alist-default'
Predefined rules for shell commands. Set this to `nil' to turn
guessing off. The elements of `dired-guess-shell-alist-user'
(defined by the user) will override these rules.
`dired-guess-shell-alist-user'
If non-`nil', a user-defined alist of file regexps and their
suggested commands. These rules take precedence over the
predefined rules in the variable `dired-guess-shell-alist-default'
(to which they are prepended) when `dired-do-shell-command' is
run).
Each element of the alist looks like
(REGEXP COMMAND...)
where each COMMAND can either be a string or a lisp expression
that evaluates to a string. If several commands are given, all of
them will temporarily be pushed onto the history.
You can set this variable in your `~/.emacs'. For example, to add
rules for `.foo' and `.bar' file extensions, write
(setq dired-guess-shell-alist-user
(list
(list "\\.foo$" "FOO-COMMAND");; fixed rule
;; possibly more rules...
(list "\\.bar$";; rule with condition test
'(if CONDITION
"BAR-COMMAND-1"
"BAR-COMMAND-2"))))
This will override any predefined rules for the same extensions.
`dired-guess-shell-gnutar'
Default: `nil'
If non-`nil', this is the name of the GNU Tar executable (e.g.,
`tar' or `gnutar'). GNU Tar's `z' switch is used for compressed
tar files. If you don't have GNU tar, set this to `nil': a pipe
using `zcat' is then used.
`dired-guess-shell-gzip-quiet'
Default: `t'
A non-`nil' value means that `-q' is passed to `gzip' overriding a
verbose option in the `GZIP' environment variable.
`dired-guess-shell-znew-switches nil'
Default: `nil'
A string of switches passed to `znew'. An example is `-K' which
will make `znew' keep a `.Z' file when it is smaller than the
`.gz' file.
`dired-shell-command-history nil'
History list for commands that read dired-shell commands.