在emacs中处理多个同名文件的最佳方法是什么?

Jas*_*ker 4 emacs elisp

我对emacs的一个问题是它似乎不能很好地处理不同目录中的命名文件.例如,如果我不小心,我最终会__init__.py打开20个缓冲区.我一直在做的是使用M-x rename-buffer和重命名它来指示它在哪个包中.但是,手动执行此操作有点单调乏味.

有没有人有任何攻击这个问题的策略?

Tre*_*son 19

我喜欢使用Emacs附带的uniquify:

(require 'uniquify)

(setq uniquify-buffer-name-style 'reverse)
(setq uniquify-separator "/")
(setq uniquify-after-kill-buffer-p t) ; rename after killing uniquified

(setq uniquify-ignore-buffers-re "^\\*") ; don't muck with special buffers (or Gnus mail buffers)
Run Code Online (Sandbox Code Playgroud)

有了这些设置,目录被添加到缓冲区名,给您的指示,其中的文件.例如,加载文件/some/path/to/Makefile/some/path/to/different/Makefile导致以下缓冲区名称:

Makefile/to           (which is /some/path/to/Makefile)
Run Code Online (Sandbox Code Playgroud)

Makefile/different    (which is /some/path/to/different/Makefile)
Run Code Online (Sandbox Code Playgroud)

uniquify还会在删除缓冲区时处理更新缓冲区名称,因此当删除其中一个Makefile缓冲区时,另一个缓冲区将被简单地重命名Makefile.