Dired, el editor de directorios

· Salvete, omnes!

Gestionando archivos y directorios desde Emacs

# Dired

Dired (DIRectory EDitor) es una excelente herramienta que nos facilita navegar por nuestros directorios y archivos sin tener que salir de Emacs. Básicamente lo que hace es listar (ls) el contenido del directorio que le indiquemos y permitirnos ciertas acciones sobre el mismo.

# Mi configuración

Esta es la configuración que utilizo en mi init.el (requiere use-package). Puedes ver mi configuración completa acá.

(use-package dired
  :ensure nil
  :config
  (setq dired-recursive-copies 'always)
  (setq dired-listing-switches "--group-directories-first -alh"))

El paquete dired-hide-dotfiles nos permite ignorar los archivos ocultos por defecto. Con . podremos mostrarlos u ocultarlos nuevamente.

(use-package dired-hide-dotfiles
  :after dired
  :hook (dired-mode . dired-hide-dotfiles-mode)
  :config
  (define-key dired-mode-map "." #'dired-hide-dotfiles-mode))

Con dired-open podemos indicarle a Emacs con qué programa deseamos abrir ciertas extensiones específicas:

(use-package dired-open
  :after dired
  :config
  (setq dired-open-extensions '(("mp3" . "mpv")
				                ("mp4" . "mpv")
				                ("mkv" . "mpv")
				                ("png" . "sxiv")
				                ("jpg" . "sxiv")
				                ("jpeg" . "sxiv"))))

# Cómo lanzar dired

Estando dentro de Emacs lo podemos invocar con la combinación de teclas C-x d o con el comando M-x dired.

Si queremos abrir una terminal con emacs y dired de una sola vez, podemos asignar un atajo de teclado al siguiente comando:

st -e emacs -nw --execute='(dired "~/")'

En mi caso, esto abre mi terminal de preferencia (st) con Emacs y dired en el directorio home. Funciona a la perfección, así que lo uso como navegador de archivos determinado en dwm.

# Atajos de utilidad

ATAJO ACCIÓN
n/p Avanzar/retroceder líneas (también sirven las flechas)
RET Visitar directorio/archivo
o Abrir archivo en otra ventana
+ Crear directorio
i Mostrar directorio en la misma ventana
C Copiar archivo a
R Renombrar/mover archivo a
D Borrar archivo
d Seleccionar para borrar
u Deshacer selección
U Deshacer selección a todo
x Ejecutar borrado de selección
M chmod
O chown
q Cerrar ventana de dired

# Referencias