Curso emacs 3 (Dired, el navegador de archivos)

Este pedazo lo dedicaremos al flamante navegador de archivos de emacs: dired. También veremos algunas extensiones que podemos incorporar a nuestro archivo de configuración .emacs para una mejor optimización del navegador. Dired, a palo seco, luce así:

dired

Lo mejor es abrirlo invocándolo directamente (M-x dired) o con el atajo (C-x d) y probar los atajos, los más comunes, se muestran a continuación:

+ (Crear directorio)
e [enter] (Editar el archivo)
g (Después de una modificación actualiza la pantalla)
q (Regresa al listado)
d (Marca un archivo para su eliminación. Coloca una “D” en la 1ª columna)
u (Elimina la marca anterior)
x (Elimina los archivos marcados con una “D”)
D (Eliminación inmediata. Pide confirmación)
C (Copiar)
4C (Copiar el archivo del cursor y los 4 siguientes)
R (Renombrar o mover)
Z (Comprimir/descomprimir [compress (.z .Z) y gzip (.gz)])
X (Entrar comandos de shell [chmod, grep, find, sort …])
S (Crear un enlace simbólico)
h (Muestra la ayuda y todos los atajos de teclado)
( (Muestra/esconde detalles de archivos y directorios)
& (Con el cursor sobre un archivo, permite entrar una aplicación para abrirla)

En general, para emacs, existe un montón de extensiones que hacen referencia a los temas más insospechados. Aquí sólo usaremos dos funciones muy útiles. Abrimos el archivo de configuración:

C-x C-f .emacs

Y copy/pasteamos:

;;; dired
(defun dired-dotfiles-toggle ()
“Mostrar/esconder archivos ocultos”
(interactive)
(when (equal major-mode ‘dired-mode)
(if (or (not (boundp ‘dired-dotfiles-show-p)) dired-dotfiles-show-p)
(progn
(set (make-local-variable ‘dired-dotfiles-show-p) nil)
(message “h”)
(dired-mark-files-regexp “^\\\.”)
(dired-do-kill-lines))
(progn (revert-buffer)
(set (make-local-variable ‘dired-dotfiles-show-p) t)))))
;;; Atajo para esconder/mostrar archivos ocultos clicando C-c w:
(global-set-key (kbd “C-c w”) ‘dired-dotfiles-toggle)
;
;
;;; dired
(defun external-app ()
“Abrir archivo con apps externas.”
(interactive)
(let* ((file (dired-get-filename nil t)))
(call-process “xdg-open” nil 0 nil file)))
;;; Atajo para abrir archivos con apps externas clicando F8.
(global-set-key (kbd “”) ‘external-app)

Como podemos observar en la descripción entrecomillada de la linea siguiente al nombre de la función (defun) la primera muestra/esconde archivos ocultos y su atajo es C-c w y la segunda permite abrir archivos sobre los que está situado el cursor con aplicaciones externas y el atajo es la tecla F8. Recordar que para que estas funciones sean operativas en emacs, después de guardar el archivo (C-x C-s) ha de salirse y volver a entrar en emacs o “recargar” el buffer (M-x eval-buffer). Podemos practicar si verdaderamente podemos abrir toda clase de archivos con la función external-app. Si alguna extensión no nos la “pilla” recordar que el & permite entrar una aplicación concreta.

Aprovechamos que tenemos el archivo de configuración .emacs abierto para añadir algunas lineas a

;;; Eliminar espacios en blanco al final de la linea y al final del texto
;;; de forma automática al guardar el archivo:
(add-hook ‘before-save-hook ‘delete-trailing-whitespace)
(add-hook ‘write-file-hooks ‘delete-trailing-whitespace nil t)
;
;;; Añadir un espacio entre el número de linea y el texto de la linea
;;; al lanzar M-x linum-mode (ver números de linea)
(setq linum-format “%d “)

En el próximo pedazo veremos las ayudas que emacs nos brinda y jugaremos con los colores.

Entregas anteriores:

Curso de emacs 2: http://www.lapipaplena.org/curso-emacs-2-iniciando-emacs-y-moviendonos-con-soltura/

Curso de emacs 1: http://www.lapipaplena.org/curso-emacs-1-a-modo-de-pequena-introduccion/

 
 

Share

5 comments

  1. emacsboy dice:

    esperando la siguiente entrega!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *