Even more dired key bindings21 Jan 2015
I've posted about
dired quite a few times now. Below, I'll do a
short review of the old bindings and add a few remaining recipes from
- Binding r to
dired-start-processis covered here.
- Binding e to
ediff-filesis mentioned here.
- Binding z to
dired-get-sizeis covered here.
- Binding ` to
dired-open-termis covered here.
Jump to a file with
(define-key dired-mode-map "i" 'ido-find-file)
I use this one quite frequently: i is somehow mnemonic to C-i, which means completion. Remember that you can select the current candidate with C-m and the current text (usually to create a new file) with C-j.
Move up and down
(define-key dired-mode-map "j" 'dired-next-line) (define-key dired-mode-map "k" 'dired-previous-line)
As I've mentioned before, this is my standard recipe for all modes that don't self-insert.
Flag garbage files
(define-key dired-mode-map (kbd "%^") 'dired-flag-garbage-files)
Huh, I always thought this was the default binding. I have no idea where this came from, but I use this plus x to get rid of the garbage produced by a LaTeX run:
(setq dired-garbage-files-regexp "\\.idx\\|\\.run\\.xml$\\|\\.bbl$\\|\\.bcf$\\|.blg$\\|-blx.bib$\\|.nav$\\|.snm$\\|.out$\\|.synctex.gz$\\|\\(?:\\.\\(?:aux\\|bak\\|dvi\\|log\\|orig\\|rej\\|toc\\|pyg\\)\\)\\'")
Emacs' adaptation of
(define-key dired-mode-map "F" 'find-name-dired)
This little function is essential if you want to do perform some
operation on all files in the current directory and its sub
directories that match a pattern. Basically the same thing that you
would do with the UNIX
find, just better.
Ignore unimportant files
(define-key dired-mode-map (kbd "M-o") 'dired-omit-mode)
This will toggle the display of unimportant files, like:
(setq dired-omit-files "\\(?:.*\\.\\(?:aux\\|log\\|synctex\\.gz\\|run\\.xml\\|bcf\\|am\\|in\\)\\'\\)\\|^\\.\\|-blx\\.bib")
Move to the parent directory
(define-key dired-mode-map "a" (lambda () (interactive) (find-alternate-file "..")))
There probably is a default function that does this. I've been using
this one for years, probably because it reuses the current
buffer of opening the parent directory.
Phew, that's a lot of bindings. I don't necessarily encourage you to use the same bindings as me; I just want to bring your attention to some of these functions, so that you can work them into your workflow. If you notice that I'm using some obsolete stuff, do let me know, I'm always looking to improve.