2009-08-17 29 views
4

我在emacs上遇到的一個問題是,它似乎無法很好地處理不同目錄中的類命名文件。例如,如果我不小心,最終會打開20個__init__.py緩衝區。我一直在做的是使用M-x rename-buffer並重命名它以指示它在哪個包內。但是,手動操作有點繁瑣。在emacs中處理多個相似命名文件的最佳方式是什麼?

有沒有人有攻擊這個問題的策略?

回答

19

我喜歡uniquify,其自帶的Emacs:

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

使用這些設置,該目錄被添加到緩衝區的名字,讓您的其中文件是一個跡象。例如,加載文件/some/path/to/Makefile/some/path/to/different/Makefile會導致以下緩衝區名:

Makefile/to   (which is /some/path/to/Makefile) 

Makefile/different (which is /some/path/to/different/Makefile) 

uniquify也處理更新緩衝區名稱時緩衝區被刪除,所以當兩個中的一個Makefile緩衝區被刪除,另一個被重命名爲Makefile

+0

工程就像一個魅力。謝謝! – 2009-08-17 18:12:51

+1

我也很高興發現uniquify。 – seth 2009-08-17 20:53:04

+0

它默認帶有Emacs Starter Kit。 – 2009-08-18 07:59:39

1

如果你想完全控制你可以重新定義create-file-buffer

如果你想完整的文件名也可能是那樣簡單

(defun create-file-buffer (filename) 
    "Create a suitably named buffer for visiting FILENAME, and return it." 
    (generate-new-buffer filename)) 

參考見files.el

+1

重新定義標準庫函數並不是一件明智的事情。更好地提醒它如何uniquify。 – 2009-08-18 08:03:17

相關問題