アーカイブ

2006年 3月 28日 のアーカイブ
1953 letters | 500 views | コメントする

本当は納得いく動作ではないが、それでも連続した文字入力のアンドゥを実装しなきゃならんだろうか。
この件は先日も書いたとおり

これがメモ帳だけの動作なら、Undo回数が違うから動作も違うのだとかたづけられるのだが、
偽パッドもこの動作をしていると言うことは、リッチエディットでもこの動作だということだから、
複数回Undoできるものでもこれは標準的な動作なのかも知れない。
もしやと思って試してみたら、Wordも同じくその動作だ。
適当な場所までのUndoが出来ないっていうデメリットがあるのに、
代わりにどんなメリットがあってこの実装なのかが想像も出来ない。
想像できないので検索してみるのだが、そもそもどう検索すれば良いのかも見当が付かない。
ズバッとUndo出来て便利だなとか、チマチマUndoウゼェなとか、
どんな作業をしてるかも書いてあるようなブログとか見つかれば納得いくかも知れないんだが。
実装するにはかなり深い部分の変更が必要なので、強い動機がなきゃやりたくない。

一応、それぞれどんな動作なのかは比較した。
MS製のはワープロも含めて、スペース入れようが改行入れようが、文字入力は全部戻す。
EmEditorはスペースじゃ切れないけど、改行では切れる。
改行だけ5回打ってからUndoすると、メモ帳はズバッと、EmEditorは1個ずつ戻る。
Alphaはスペースでも切れる。
英単語、スペース、英単語、と入力して、5回Undoすると元に戻る。
これならなんとなく便利かも知れないって気もする。
さらに気がついたのは、メモ帳ではBSキーやDELキーの連続も一気に戻す。
Wordはさらに徹底していて、文字入力に続くBSキーを、文字入力とまとめて一気にUndoする。
メモ帳はUndoバッファが1回分だからこれで正解だが、Wordはなぜこんな実装にした?
文字入力をまとめてUndoするエディタ達が、BSやDELは一個ずつUndoするのはなぜ?
それぞれが、それぞれの動作を一番便利だと思って実装してるはずだから、理由もあるはず。

ここまではまともな動作の話。次はまともでもない。
abc←←←def(元に戻す)ghi(元に戻す)
これで、abcに戻るはずなのに、defabcに戻る。意味不明。
これは再現方法がわかる不明動作にすぎず、再現方法がわからないが、
「過去にそんな状態にはなったことさえない」っていう状態に戻すこともあり、それはバグだろう。
いや、本当はそのバグの方を書くつもりで、何度かバグを起こさせているにもかかわらず、
最小の再現方法にまでは辿り着けなくて、やむを得ず近い操作で起こる不明動作までを書いた。
これに近い操作でもうちょっと複雑に検証していけば、バグまで辿り着けるはず。

こんな感じで、実装を考えてないわけではないが、納得いかないのでやる気が起きない。
現在の見解は、メモ帳の動作は正解だが、Wordなどの動作は不正解であり。
理由は、Undo複数回できるソフトに1回しか出来ないエディタ用の動作を取り入れているから。
唯一、Alphaの単語単位Undoまでは正解といえるだろう。
でも、それを覆すほどWordの動作を支持する見解を見かけて納得したら、
やる気がある内に実装しておきたいかも。

4938939282
4938939282