5

私は、この一般的なelispを使用することで、多かれ少なかれ私が望むように動作するemacsを持っています。

(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

2 に答える 2

4

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

于 2010-11-25T14:30:13.840 に答える
3

set-window-dedicated-pEmacsにそのバッファーのそのウィンドウのみを表示させるように強制します。他のdiredバッファーは同じウィンドウを使用できません。以下については、*info*ページをset-window-dedicated-p参照してください。

`display-buffer'(* note Window ::の選択)は、その中に別のバッファを表示するために専用のウィンドウを使用することはありません。

おそらく、 DiredReuseDirectoryBufferのwikiページにあるパッケージの1つが、探している機能を提供します...

于 2010-11-22T13:25:28.053 に答える