[xyzzy:04160] Re: バッファの undo 情報のクリア
- Subject: [xyzzy:04160] Re: バッファの undo 情報のクリア
- From: Hiroshi Saito <HiroshiSaito@xxxxxxx>
- X-mailer: Becky! ver 1.23
どーも亀井さん、サイトウです。
回答ありがとうございます。
On Wed, 16 Feb 2000 18:57:54 +0900
Tetsuya Kamei <kamei@xxxxxxxxxxxx> wrote:
> | バッファの undo 情報をクリアする方法を教えてください。
>
> 無理矢理クリアするならこうでしょうか。
>
> (let ((kept-undo-information nil))
> (declare (special kept-undo-information))
> (insert #\a)
> (delete-region (point) (1- (point))))
>
> # なんで *scratch* だと動かないんだろう...
なるほど、ほんとに無理矢理という感じですね。
ためしに、以下のようにしてうまく行きました。
(defun clear-undo (buff)
(interactive "B")
(save-excursion
(set-buffer buff)
(let ((kept-undo-information nil))
(declare (special kept-undo-information))
(insert #\a)
(delete-region (point) (1- (point)))
)
)
)
いままで、スペシャル変数について良く理解していませんでした。
こんな風に使うんですね。
それで、ちょっと自分の理解の確認したいのですが、
ここんとこ
(let ((kept-undo-information nil))
(declare (special kept-undo-information))
(insert #\a)
(delete-region (point) (1- (point)))
)
は、
(let ((kui kept-undo-information))
(setq kept-undo-information nil)
(insert #\a)
(delete-region (point) (1- (point)))
(setq kept-undo-information kui)
)
結果的に同じことだと思って良いのでしょうか?
-----------------------------------
サイトウ ヒロシ
HiroshiSaito@xxxxxxx