Como posso fazer com que os nomes de buffer direcionado incluam o caminho completo?

9

Muitas vezes, tenho muitos diredbuffers abertos, incluindo alguns para pastas com nomes idênticos. Ocasionalmente, isso faz com que eu mude para o caminho errado, então estou procurando uma maneira de corrigir isso.

Atualmente, se eu tiver várias pastas com nomes idênticos abertas dired, minha lista de buffers será algo como isto:

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

Gostaria de incluir o caminho completo (ou parte dele) no nome do buffer para poder ver para qual pasta estou realmente mudando. Eu preferiria fazer assim:

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

e assim por diante. Eu também poderia me contentar com, por exemplo:

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

mas eu preferiria o primeiro, porque geralmente será mais fácil encontrar o buffer que eu quero primeiro pelo nome da pasta e depois pelo caminho completo. Como isso pode ser feito?

Scott Weldon
fonte

Respostas:

8

Você pode obter esse comportamento usando uniquifyas seguintes configurações:

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

Observe, no entanto, que a uniquify funciona globalmente, não apenas nos buffers direcionados.

páprica
fonte
Legal, obrigado! Vou esperar e ver se há uma solução que dê um caminho completo antes de aceitar uma resposta.
Scott Weldon
11
Acabei de adicionar uma observação sobre o uniquify-min-dir-contentque deve ajudá-lo com isso. Observe, no entanto, que esta é uma configuração global: se aplica a todos os buffers, não apenas aos buffers direcionados!
colorau
5

No meu .emacs, defino caminhos completos para os buffers Dired desta maneira:

(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
fonte