Go to the previous, next section.

Installation

This manual describes the dired features provided by the file `dired-x.el'. To take advantage of these features, you must load the file and (optionally) set some variables.

In your `.emacs' file in your home directory, or in the system-wide initialization file `default.el' in the `site-lisp' directory, put

(add-hook 'dired-load-hook 
          (function (lambda ()
                      (load "dired-x")
                      ;; Set dired-x variables here.  For example:
                      ;; (setq dired-guess-shell-gnutar "gtar")
                      ;; (setq dired-omit-files-p t)
                      ;; (setq dired-x-hands-off-my-keys nil)
                      )))

This will load `dired-x.el' when dired is first invoked (for example, when you first do C-x d).

Optional Installation Dired Jump

In order to have dired-jump and dired-jump-other-window (See section Miscellaneous Commands) work before dired and dired-x have been properly loaded the user should set-up an autoload for these functions. In your `.emacs' file put

;;; Autoload `dired-jump' and `dired-jump-other-window'.
;;; We autoload from FILE dired.el.  This will then load dired-x.el 
;;; and hence define `dired-jump' and `dired-jump-other-window'.
(define-key global-map "\C-x\C-j" 'dired-jump)
(define-key global-map "\C-x4\C-j" 'dired-jump-other-window)

(autoload (quote dired-jump) "dired" "\
Jump to dired buffer corresponding to current buffer.
If in a file, dired the current directory and move to file's line.
If in dired already, pop up a level and goto old directory's line.
In case the proper dired file line cannot be found, refresh the dired
buffer and try again." t nil)

(autoload (quote dired-jump-other-window) "dired" "\
Like \\[dired-jump] (dired-jump) but in other window." t nil)

Note that in recent releases of GNU Emacs 19 (i.e., 19.25 or later) the file `../lisp/loaddefs.el' of the Emacs distribution already contains the proper auto-loading for dired-jump so you need only put

(define-key global-map "\C-x\C-j" 'dired-jump)

in your `.emacs' file in order to have C-x C-j work before dired is loaded.

Optional Installation File At Point

If you choose to have `dired-x.el' bind dired-x-find-file over find-file (See section Find File At Point), then you will need to set dired-x-hands-off-my-keys and make a call to the function dired-x-bind-find-file in the dired-load-hook:

(add-hook 'dired-load-hook 
          (function (lambda ()
                      (load "dired-x")
                      ;; Bind dired-x-find-file.
                      (setq dired-x-hands-off-my-keys nil)
                      ;; Make sure our binding preference is invoked.
                      (dired-x-bind-find-file)
                      )))

Alternatively, you can set the variable before `dired-x.el' is loaded

(add-hook 'dired-load-hook 
          (function (lambda ()
                      ;; Bind dired-x-find-file.
                      (setq dired-x-hands-off-my-keys nil)
                      (load "dired-x")
                      )))

Special Notes

If `dired-x.el' was not bundled with the version of GNU Emacs installed at your site (i.e., not in the default `../lisp' directory) then you must put the file `dired-x.el' in a directory known to GNU Emacs. Examine the variable load-path for a list of these directories. If you wish to add a new directory on this list of directories use something like this in your `.emacs' file

;;; LOAD PATH
(setq load-path (append
                 load-path ; default at top
                 (list 
                  "/the/directory/where/you/put/dired-x")))

If you wish to put the new directory at the head of the list (where it will be found first) then you should use instead

;;; LOAD PATH
(setq load-path (append
                 (list 
                  "/the/directory/where/you/put/dired-x")
                 load-path)) ; default at bottom

You must also byte compile the file (for example, hitting B in dired-mode). When byte-compiling `dired-x.el' you may get messages about functions vm-visit-folder, Man-notify-when-ready, and reporter-submit-bug-report not being defined. These are warnings and should be ignored.

CAUTION: If you are using a version of GNU Emacs earlier than 19.20 than you may have to edit `dired.el'. The copy of `dired.el' in GNU Emacs versions earlier than 19.20 incorrectly had the call to run-hooks before the call to provide. In such a case, it is possible that byte-compiling and/or loading dired can cause an infinite loop. To prevent this, make sure the line of code

        (run-hooks 'dired-load-hook)

is the last executable line in the file `dired.el'. That is, make sure it comes after the line

        (provide 'dired)

Go to the previous, next section.