dired-x: Shell Command Guessing

 
 5 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-n’ 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-n’ 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.
 
      If ‘*’ in the shell command, that means to substitute the file
      name.
 
      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-case-fold-search’
      Default: ‘t’
 
      Non-‘nil’ means ‘dired-guess-shell-alist-default’ and
      ‘dired-guess-shell-alist-user’ are matched case-insensitively.
 
 ‘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.