Bagaimana saya bisa membuat nama buffer Dired menyertakan path lengkap?

9

Saya sering memiliki banyak diredbuffer terbuka, termasuk beberapa untuk folder yang memiliki nama yang identik. Kadang-kadang, ini menyebabkan saya beralih ke yang salah, jadi saya mencari cara untuk memperbaikinya.

Saat ini, jika saya memiliki beberapa folder bernama identik terbuka dired, maka daftar buffer saya terlihat seperti ini:

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

Saya ingin memasukkan path lengkap (atau sebagian dari itu) dalam nama buffer sehingga saya bisa melihat folder mana yang sebenarnya saya gunakan. Saya lebih suka melakukannya seperti ini:

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

dan seterusnya. Saya juga bisa menerima misalnya:

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

tapi saya lebih suka yang pertama, karena biasanya akan lebih mudah untuk menemukan buffer yang saya inginkan dengan nama folder terlebih dahulu, dan path kedua penuh. Bagaimana ini bisa dilakukan?

Scott Weldon
sumber

Jawaban:

8

Anda bisa mendapatkan perilaku ini dengan menggunakan uniquifydengan pengaturan berikut:

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

Perhatikan bahwa uniquify berfungsi secara global, tidak hanya pada buffer yang dired.

paprika
sumber
Keren Terimakasih! Saya akan menunggu dan melihat apakah ada solusi yang memberikan jalan penuh sebelum saya menerima jawaban.
Scott Weldon
1
Saya baru saja menambahkan catatan tentang uniquify-min-dir-content, yang akan membantu Anda dengan itu. Namun perlu dicatat, bahwa ini adalah pengaturan global: ini berlaku untuk semua buffer, bukan hanya buffer yang dired!
paprika
5

Di .emacs saya, saya menetapkan path lengkap untuk buffer Dired dengan cara ini:

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