The Man Who Fell From The Wrong Side Of The Sky:2019年4月16日分

2019/4/16(Tue)

[Windows] Windows 8以降のExplorerにあるいわゆるCtrl-Z問題

自宅システムをWindows 10に移行する上で最大のブロッカー要素ってこれなんよな。

いにしえよりExplorerには

というショートカットがあるのだけど、Windows 8以降は挙動が変わってあちこちで文句でてるのはたいへんに有名な話。

まず第一にExplorerで右クリックから「新規作成」で「新しいテキスト ドキュメント.txt」を作成し編集するユースケース、この時にCtrl-Zを押すと「新規作成」がUndoされてしまい編集したファイルが警告も無く消失してしまう *1(ゴミ箱には残らない)。

これWindows 7以前では「新規作成」はUndoの対象外だったので、Ctrl-Z押してもUndoされるのはそれより前にExplorerで行った作業だったのでファイルが消失することはなかったのよね。

そして第二に「新しいテキスト ドキュメント.txt」をExplorer上で「コピー/Ctrl-C」「貼り付け/Ctrl-V」で「新しいテキスト ドキュメント - コピー.txt」という複製を作成し編集するユースケース。 この時にもCtrl-Zを押すと「貼り付け」が取り消されるので複製は存在しなかった扱いで忽然とファイルが消える(当然こちらもゴミ箱にも残らない)。

こっちの場合はWindows 7以前だとCtrl-Zを押したタイミングで「このファイルを完全に削除しますか?」という警告が出た

ところが今のWindowsチームは純度の高いハピ粉でもキメ過ぎたのかこの警告を廃止してしまったようだ。

そもそもWindows 8以降では「削除/Delete」の場合の挙動も変わっていて、Windows 7以前では確認ダイアログが出たところがそのまま確認なしにゴミ箱直行となる、まぁゴミ箱漁ればいいだけなのでまだ罪は浅いけどね。 それにこれはゴミ箱のプロパティで「削除の確認メッセージを表示する」にチェックを入れればWindows 7以前と同じ挙動に設定にもできるからな。

しかしCtrl-Z問題にはWindows 7以前と同じ挙動にするための設定項目というのは存在しないのがほんと頭おかしい。

つーことで操作ミスでCtrl-Z押すと知らないうちにどこかでファイルが消えてしまう使えるかこんなクソOSという状態だったのだけど、Windows 8なんぞ誰も使ってないのであまり騒がれることも無かったのよね。 そんでWindows 7のEOLもみえてきたWindows 10のプレビューリリースの頃から注目というか 炎上しはじめたのだけど、MSも元の挙動に戻すみたいなアナウンスしてたので楽観論もあったのだが1809になった今でも直ってない。

まだ新規作成したファイルが0バイトの空っぽとかペーストしたファイルがコピー元と同一の間なら別にUndoされてもいいけど、それなら編集の開始した時点でUndo対象から外せってんだよな。 ファイルがいつまでもUndo操作キューにたまっててCtrl-Zを押すと警告も無く消えるとは思わねえよ以下罵詈雑言。

いまだにこのバグ(仕様じゃねぇよこんなの)開発者のお偉いさんにUndoとはUndoだからUndoであってこれが正しいンダーと主張してるお医者様とお薬が必要なタイプがおるんかもしれない。

ちなみに対策だけれどキーイベントを奪ってCtrl-ZとCtrl-Yを完全に無効化する常駐アプリ的なもの書くのはさして手間ではないしそれこそ AutoHotKeyあたり使えばいいんだろうけど、マウス操作をミスってファイルがどっか吹っ飛んだ時にCtrl-Zは便利なのよね。 なのでできればWindows 10以前と同じ動作にしたいんだが、操作履歴はExplorerしか知らんから難しいよな。

こんなんもうWindows 8リリースの2012年からの問題だし誰か対策考えてるやろと検索したけど、Ctrl-Zで消失したファイルはバックアップソフトで救出!みたいなクソ広告しか出てきやがらねえ。

まぁワイ自身はさすがに自衛できるし家族マシンについてはそもそも低PCスキルだからCtrl-ZつかってUndoしてるとはとても思えないので対策考えるだけ無駄かもしれない。 キーロガー的なもの入れてCtrl-Zがどれくらい使われてるか統計とるのがいいんですかねこれ。

*1:「新しいテキスト ドキュメント.txt」という名前を最初にリネームしてから編集開始してればCtrl-Zは「ファイル名の変更」のUndoになるので消えることは無いから気づきにくいんだけどね。