Next: Transforming File Names in Dired, Previous: Shell Commands in Dired, Up: Dired, the Directory Editor [Contents][Index]
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 that you want to run ‘tar xvf’, and suggest that as the default shell command.
You can type M-n to get the default into the minibuffer for editing. If there are several commands for a given file, type M-n several times to see each matching command in order.
Dired only tries to guess a command for a single file, never for a list of marked files.
This variable specifies the predefined rules for guessing shell
commands suitable for certain files. Set this to nil to turn
guessing off. The elements of dired-guess-shell-alist-user
(defined by the user) will override these rules.
This variable is like dired-guess-shell-alist-default but
contains external viewers and players for various media formats.
Setting this to nil turns guessing off. The variables
dired-guess-shell-alist-user and
dired-guess-shell-alist-default will override these rules.
If non-nil, this variable specifies the user-defined alist of
file regexps and their suggested commands. These rules take
precedence over the predefined rules in the variables
dired-guess-shell-alist-default and
dired-guess-shell-alist-optional when
dired-do-shell-command is run). The default is nil.
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.
A ‘*’ in the shell command stands for the file name that matched regexp. When Emacs invokes the command, it replaces each instance of ‘*’ with the matched file name.
To add rules for ‘.foo’ and ‘.bar’ file extensions, add this to your Init file:
(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.
You can find more user options with M-x customize-group RET dired-guess RET.
Next: Transforming File Names in Dired, Previous: Shell Commands in Dired, Up: Dired, the Directory Editor [Contents][Index]