Jak sprawić, aby nazwy buforów Dired zawierały pełną ścieżkę?

9

Często mam diredotwarte wiele buforów, w tym niektóre dla folderów o identycznych nazwach. Czasami powoduje to przełączenie na niewłaściwy, więc szukam sposobu, aby to naprawić.

Obecnie, jeśli mam otwartych wiele identycznie nazwanych folderów dired, moja lista buforów wygląda mniej więcej tak:

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

Chciałbym zawrzeć pełną nazwę ścieżki (lub jej część) w nazwie bufora, aby zobaczyć, do którego folderu faktycznie się przełączam. Wolałbym to zrobić w ten sposób:

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

i tak dalej. Mógłbym również zadowolić się np .:

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

ale wolałbym ten pierwszy, ponieważ zwykle łatwiej będzie znaleźć bufor, którego szukam najpierw po nazwie folderu, a po drugiej pełnej ścieżce. Jak można to zrobić?

Scott Weldon
źródło

Odpowiedzi:

8

Możesz uzyskać to zachowanie, używając uniquifynastępujących ustawień:

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

Należy jednak pamiętać, że uniquify działa globalnie, nie tylko na buforach buforowanych.

papryka
źródło
Fajne dzięki! Poczekam i sprawdzę, czy istnieje rozwiązanie, które daje pełną ścieżkę, zanim zaakceptuję odpowiedź.
Scott Weldon
1
Właśnie dodałem notatkę o uniquify-min-dir-content, która powinna ci w tym pomóc. Pamiętaj jednak, że jest to ustawienie globalne: dotyczy wszystkich buforów, a nie tylko buforów diodowych!
papryka
5

W moich .emacs ustawiam pełne ścieżki dla buforów Dired w ten sposób:

(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
źródło