2010-11-22 11 views
5

Emacsのdiredモード用の専用ウィンドウ?

(defun toggle-current-window-dedication() 
(interactive) 
(let* ((window (selected-window)) 
     (dedicated (window-dedicated-p window))) 
    (set-window-dedicated-p window (not dedicated)) 
    (message "Window %sdedicated to %s" 
      (if dedicated "no longer " "") 
      (buffer-name)))) 

(global-set-key [pause] 'toggle-current-window-dedication) 
(defun toggle-current-window-dedication() 
(interactive) 
(let* ((window (selected-window)) 
     (dedicated (window-dedicated-p window))) 
    (set-window-dedicated-p window (not dedicated)) 
    (message "Window %sdedicated to %s" 
      (if dedicated "no longer " "") 
      (buffer-name)))) 

(global-set-key [pause] 'toggle-current-window-dedication) 

残念ながら、diredはバッファ名のためにディレクトリを使用しているので、diredウィンドウはそのディレクトリに専用化されています。 。上または下に移動すると、新しいバッファが別のウィンドウに開きます。私がしたいのは、ウィンドウをメジャーモード(この場合はdired)に専念させ、そのモードをデフォルトとするすべての新しいバッファをそのウィンドウより優先させることです。これは可能ですか?

答えて

4

すべてのdiredナビゲーションが内に発生する原因となる、dired-singleとの組み合わせで、あなたのコードを使用してみてください*dired*という名前の単一のバッファ完全な開示のために、私はdired-singleと書いた。

+0

ありがとうジョー、それは私が探していたものです! –

+0

残念ながら、 'dired-single'は' dired * 'バッファと同じウィンドウ内のファイルを開きます。これはディレクトリには最適ですが、 'dired-find-file-other-window'のようにファイルを扱えるといいでしょう。 – hupf

3

set-window-dedicated-p Emacsにそのバッファのウィンドウを表示させ、他のdiredバッファは同じウィンドウを使用できません。 *info* page for set-window-dedicated-pを参照してください:

`表示バッファ」(* ウィンドウを選択するノート::)それで別のバッファ を表示するための専用 ウィンドウを使用することはありません。 DiredReuseDirectoryBufferため

おそらく

wikiページ上のパッケージの一つ、あなたが探している機能を提供しています...

+0

ありがとう、トレイ。 dired-find-alternate-fileを使って新しいバッファが開かれないようにしています。diredバッファと同じウィンドウのregexpsを設定しています。これにより私はどこにいても90%が得られますが、他のバッファは私のdiredウィンドウ(ヘルプ、補完など)で引き続き開くことができます。私がelispをよく理解していれば、ウィンドウ内でdiredの正規表現マッチをフックしてから、新しいバッファを開くことができます。 :) –

関連する問題