Emacs で同名のバッファがあった時の uniquify の設定

Emacs で同名のバッファがあった時には uniquify を使うと パスの一部をバッファ名に付与して表示してくれるので見分けが付くようになります。

例えば、

  • aaa/bbb/test
  • 111/bbb/test

というパスでファイルがあったとします。

これは通常

  • test<1>
  • test<2>

と表示されますが、 uniquify を使って

(setq uniquify-buffer-name-style 'forward)

とやると

f:id:nishikawasasaki:20130203024040p:plain

といった感じです。

区別のためのディレクトリ表示を test<111>のように <> 囲みで表示するのは

(setq uniquify-buffer-name-style 'post-forward-angle-brackets)

と設定してやります。

と、この設定は良くみるのですが、 この状態だと間の bbb が省略されてしまいます。

"..." のような省略記号があるとまだ分かりやすいのですが パス表示の中間部が無かったことのように表示されてしまうため、 個人的には分かりにくいのです。。

これを解決するには

(setq uniquify-strip-common-suffix nil)

としてやります。

これでパス風表示の場合は

f:id:nishikawasasaki:20130203024846p:plain

<> 囲みの場合は

f:id:nishikawasasaki:20130203024153p:plain

と全て表示されてわかりやすく、そして helm/anything で絞り込みの対象になります。

深いディレクトリになった時おそろしいことになりそうだけれど、 とりあえずはこっちの方が好み!