[xyzzy:03695] Re: process-filter
- Subject: [xyzzy:03695] Re: process-filter
- From: Yutaka OIWA <oiwa@xxxxxxxxxxxxxxxxxxxxx>
おおいわです。
>> On Thu, 9 Dec 1999 11:14:50 +0900, Tetsuya Kamei <kamei@xxxxxxxxxxxx> said:
Tetsuya> えーと、ウィンドウが複数に分割されていて、対象のバッフ
Tetsuya> ァは表示はされているけど選択はされていないという状況っ
Tetsuya> てことですよね? point はウィンドウごとに独立しているの
Tetsuya> で、pop-to-buffer などでバッファが表示されているウィン
Tetsuya> ドウに移動してから goto-char しないと反映されません(と
Tetsuya> いうか、されないように見える)。
ありがとうございます。若干の試行錯誤はあったものの、
基本的に↑の「point はウィンドーローカル」という考え方で
うまくいきました。
(defun my-process-filter (proc str)
(let ((old-buffer (selected-buffer))
(old-window (selected-window))
; (win-config (current-window-configuration))
(log-win (get-buffer-window my-log-buffer)))
(unwind-protect
(progn
(set-buffer my-log-buffer)
(save-excursion
(goto-char (point-max))
;; ここで内容を整形しながらバッファにがりがり挿入(略)
(when (and my-autoscroll-flag log-win)
(set-window log-win)
(goto-char (point-max))
))
; (set-window-configuration win-config) ←これではうまくいかない
(set-window old-window)
(set-buffer old-buffer)
(refresh-screen))))
ついでにもう一つ質問があるのですが、
終了時に保存を問い合わせてこないバッファ (*scratch* のようなもの)
はどのようにすれば作れるでしょうか。
今のところ get-buffer-create で作っているのですが、
これだと C-x C-c 時に「2個のバッファが保存されていませんが……」と
聞かれてしまいます。
質問ばかりで済みませんがよろしくお願いします。
--
大岩 寛 Yutaka Oiwa
東京大学大学院 理学系研究科情報科学専攻 修士課程 米澤研究室
<oiwa@xxxxxxxxxxxxxxxxxxxxx>, <yutaka@xxxxxxxxxxxxxxxxxxxxx>
PGP fingerprint = C9 8D 5C B8 86 ED D8 07 EA 59 34 D8 F4 65 53 61