¿Cómo puedo hacer que los nombres del búfer Dired incluyan la ruta completa?

9

A menudo tengo muchos diredbuffers abiertos, incluidos algunos para carpetas que tienen nombres idénticos. Ocasionalmente, esto hace que cambie al incorrecto, por lo que estoy buscando una manera de solucionar esto.

Actualmente, si tengo varias carpetas con nombres idénticos abiertas dired, mi lista de búfer se ve así:

foo
foo<2>
bar
foo<3>
bar<2>

Me gustaría incluir la ruta completa (o una parte de ella) en el nombre del búfer para poder ver a qué carpeta realmente estoy cambiando. Preferiría hacerlo así:

foo</full/path/to/foo>
foo</another/path>

y así. También podría conformarme con, por ejemplo:

/full/path/to/foo
/another/path/foo

pero preferiría el primero, porque generalmente será más fácil encontrar el búfer que quiero por nombre de carpeta primero, y la ruta completa en segundo lugar. ¿Cómo se puede hacer esto?

Scott Weldon
fuente

Respuestas:

8

Puede obtener este comportamiento mediante el uso uniquifyde la siguiente configuración:

(require 'uniquify)
(setq uniquify-buffer-name-style 'post-forward-angle-brackets
      uniquify-min-dir-content 999)

Sin embargo, tenga en cuenta que uniquify funciona a nivel mundial, no solo en buffers directos.

pimenton
fuente
¡Genial, gracias! Esperaré y veré si hay una solución que ofrezca un camino completo antes de aceptar una respuesta.
Scott Weldon
1
Acabo de agregar una nota sobre uniquify-min-dir-content, que debería ayudarte con eso. Sin embargo, tenga en cuenta que esta es una configuración global: ¡se aplica a todos los buffers, no solo a los buffers directos!
pimentón
5

En mi .emacs configuro rutas completas para los buffers Dired de esta manera:

(add-hook 'dired-after-readin-hook
      (lambda ()
        ;; Set name of dired buffers to absolute directory name.
        ;; Use `generate-new-buffer-name' for vc-directory
        ;; which creates duplicate buffers.
        (rename-buffer (generate-new-buffer-name dired-directory))))
link0ff
fuente