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

[xyzzy:02704] Re: sorry ()



はなわです。

> > > SPC か何かを適当に打ち込んで,undo リング(?)か何かをひっくり返して,
> > > 逆向き undo なんていうややスマートでない方法をとってました。
> 
> > これ、私も多用してます (^^;
> 
> すみませんが、どういうことか、説明していただけるとうれしいのですがm(_ _)m

要するに undo のキーを打って xyzzy でいうところの redo をする、
ということですが、ちょっと説明しにくいです…。 (^^;

(私が触ったことのある)emacs では、 undo を繰り返すと
順に前の状態に戻っていくのですが、undo を繰り返した後で
適当なキーを入力したり、カーソルを移動したりすると
今まで undo を繰り返していたことを忘れてしまいます。
(と私は理解しています)
さらに、emacs では undo 自体も undo の記憶対象になります。
ですから、undo を連続で実行して、カーソル移動などをして、
それから undo を実行すると、直前の undo を undo します。

実際の例を挙げます。
[a] などは a というキーを押したことを、
[(undo)] は undo を実行したことを表すとします。

[a][b][c][d][(undo)][1] と打って、
abc1 という文字列がバッファに残っているとします。
(ここまでは xyzzy も同じです)
ここで [(undo)][(undo)][(undo)] と打つと、バッファの内容は 
abc1 --> abc --> abcd --> abc と変化します。
d の後に実行した undo を 1回目の undo と数えると、
2回目の undo で 1 を打ったことを戻したわけですが、
3回目の undo は 1回目に undo したことを戻します。

xyzzy では最初に [a][b][c][d][(undo)][1] と打った時点で
undo 用の履歴は [a][b][c][1] となっていると思います。
ですから、同じように undo を実行すると
abc1 --> abc --> ab --> a と変化します。

最初の話に戻ります。
undo を繰り返してかなり前の状態に戻りたいとき、
undo をやりすぎてしまうことがあります。
xyzzy ならば redo すればいいわけですが、
emacs ではどうやるのが正しいのか知りません。 (^^;
そこで、私は undo が undo できることを使って、
カーソルを移動(なり適当なキーを押すなり)
してから undo を実行します。

すいません、説明がへたです (^^;

  ----  ----  ----  ----  ----  ----  ----  ----
|    東京大学大学院理学系研究科情報科学専攻
|                 小柳研究室修士2年
|    塙  与志夫 (HANAWA Yoshio)
|    mailto: hanawa@xxxxxxxxxxxxxxxxxx

Index Home