making buffer names unique





When you open a file in emacs, the buffer gets the name of that file. That's
all fine, but what if you open multiple files with the same name? At least for
me, it's a fairly common to have a number of different Makefile.am buffers

Makefile.am<3> etc., but that does really help to find the right one
at the same time. Emacs does make those names unique – Makefile.am<2>,
quickly.



To do that, emacs provides uniquify – it makes buffer names unique. In your
.emacs:





(require 'uniquify) 
(setq
uniquify-buffer-name-style 'post-forward
uniquify-separator ":")





This is emacs, so you can influence the way in which the names are made
unique. I prefer post-forward, and as separator I use a : rather than the
default |. Note, instead of post-forward there are other bizarre styles,
please see the documentation.



Anyway, now, when opening ('visiting') files test/a/foo and test/b/foo,
their buffers get the names foo:a and foo:b. In other words, the name
followed by a colon and part of the path. I think it's much clearer than the
default names foo and foo<2>. One could ask why emacs should not use

uniquify as its default behavior; it seems a clear improvement.



Uniquify is a small convenience that's been a documented part of emacs for 20
years. Still, somehow I missed it until this year. I suspect I am not the only
one - which is why I write this.


No comments:

Post a Comment

Followers

Popular Posts