2009-08-17 13 views
4

私がemacsに持っている1つの問題は、別のディレクトリのような名前のファイルをうまく扱うことができないということです。たとえば、私が慎重ではない場合、私は20 __init__.pyバッファを開いて終了します。私がやっていることは、M-x rename-bufferを使って、そのパッケージ名を示すために名前を変更しています。しかし、これを手動で行うのはやや面倒です。emacsで複数の名前の付いたファイルを扱う最良の方法は何ですか?

誰でもこの問題を攻撃する戦略はありますか?

答えて

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) 

を、ディレクトリはあなたにファイルがあるの表示を与え、バッファ名に追加されます。たとえば、ファイル/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もバッファが削除されたときにバッファ名を更新処理しますので、2つのとき1 Makefileバッファが削除され、もう一方の名前が単にMakefileに変更されます。

+0

魅力的な作品です。ありがとう! –

+1

私もuniquifyを発見して満足していました。 – seth

+0

デフォルトでEmacsスターターキットが付属しています。 –

1

完全に制御したい場合は、create-file-bufferを再定義することができます。

あなたは完全なファイル名をしたい場合には、参考のために参照してくださいfiles.el

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

ような単純なものでした。

+1

標準ライブラリ関数を再定義するのは賢明ではありません。ユニーク化のしくみについて、より良いアドバイスをしてください。 –

関連する問題