[Date Prev] [Date Index] [Date Next]
[Thread Prev] [Thread Index] [Thread Next]

[xyzzy:04160] Re: バッファの undo 情報のクリア



どーも亀井さん、サイトウです。
回答ありがとうございます。

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

Index Home