Go to the first, previous, next, last section, table of contents.

# 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 global variables here.  For example:
                          ;; (setq dired-guess-shell-gnutar "gtar")
                          ;; (setq dired-x-hands-off-my-keys nil)
                          )))
    (add-hook 'dired-mode-hook
              (function (lambda ()
                          ;; Set dired-x buffer-local variables here.  For example:
                          ;; (setq dired-omit-files-p t)
                          )))

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 first, previous, next, last section, table of contents.