window-configuration は何故、S 式じゃないの?
2006.10.02
あの window-configuration は何故、フレーム情報を持ってるの?
教えて >RMS
window-configuration は選択しているフレーム内の分割状態と各バッファ等を保持します。 window-configuration-to-register と jump-to-register で分割状態の退避/復元が可能です。 が、何故かどのフレームであったかも保持しているので、1 つ目のフレームの分割状態を 2 つ目のフレームで再現したい、という要求には答えられません。 複数フレーム開くの禁止! ってことなんでしょか? でっかい不条理です。 しかも S 式でなく専用のオブジェクトなので、加工の余地ががが。
そこで current-window-configuration-printable ですよ。 これをレジスタにしまって、後で取り出します。 ya-window-conf.el
(autoload 'ya-window-configuration-to-register "ya-window-conf" nil t) (substitute-key-definition 'window-configuration-to-register 'ya-window-configuration-to-register global-map)
使い方は C-x r w して記憶させ、C-x r j で呼び出すだけ。 本家 window-configuration-to-register とおんなじです。 違いは記憶したフレームではなく、選択しているフレームに復元するということです。
current-window-configuration-printable を定義している revive.el が別途必要です。 広瀬雄二氏には無上の感謝を、変わらず。
もちろん revive.el は windows.el のためにあるのはわかっています。 ですが、screen 的な挙動より、この単純(ElScreen のひと曰く「原始的」)な方法の方が僕には合うのです。 screen は screen で好きですがね。
カテゴリー:技術情報メモ