「ゴースト・カット」の怪:なぜ世界中のコピペ機能は壊れているのか?
Ghost Cut – or why Cut and Paste is broken everywhere
Ghost Cut – or why Cut and Paste is broken everywhere
「カット&ペースト(切り取りと貼り付け)」という、私たちが毎日無意識に使っている機能。しかし、実はこの挙動があらゆるプラットフォームで一貫しておらず、時に「ゴースト・カット(存在しないはずの切り取り)」のような不可解な現象を引き起こしているのをご存知でしょうか?なぜこの基本的なUXが、現代のUIにおいてこれほどまでに「壊れた」状態のまま放置されているのか、その技術的な背景と深層心理を紐解いていきます。
自分はこれ好きになれないと思う。Excelも似たような挙動をするって言及されてるけど、Excelってカット・コピー・ペーストの操作が一番やりづらいアプリなんだよね。
これ、Windowsのエクスプローラーでファイルをカットした時の挙動と同じだよね。ただエクスプローラーの場合はちゃんとクリップボードにも入るけど。
ctrl+xを押すと選択範囲が薄くなって無効化される [...] この時点ではクリップボードには何も入らない
元のカットのセマンティクスが欲しい場合はどうする?「Ghost cut」だとキー操作が2回必要になる。クリップボードにコピー(Ctrl+CやCmd+C)して、それからBackspaceで元のドキュメントから削除する。自分はペーストなしでカットを使うことがほとんどないから、これなら全然アリだね。
結局のところ、既存の機能が「壊れてる」わけじゃなくて、ただ作者の好みの問題なだけだと思う。まあアイデアとしては面白いし、自分は嫌いじゃないけどね。もしカット・ペーストがOS全体やアプリを横断する機能として開発されていなかったら、他のアプリはどうなってたんだろうって想像したくなる。
読んでて思ったのは、結局カットのデフォルト動作が、作者の個人的なメンタルモデルやワークフローと噛み合っていないだけってことだよね。もちろんそれ自体は全く妥当な考え方だけど、それを「欠陥(flaw)」と呼ぶのはちょっと違う気がする。「選択」の問題だよ。
一番わかりやすいのが最初の例だけど、そもそも誤ってカットしてしまった時はコピーしたかっただけというケースが多いから、クリップボードにデータを残しておくのは理にかなった設計なんだ。作者の言い分もわかるし、OS側でカットの挙動をカスタマイズできてもいいかもしれない。でも、多くのユーザーにとって「取り消し(Undo)」とは「ファイルの変更を元に戻す」ことであって「ファイルとOSの状態を元に戻す」ことじゃない。そういう意味では、デフォルトの挙動は決して欠陥じゃないと思う。
繰り返すけど、作者の代替案は合理的ではある。ただ、あくまで一部のユーザーに向けた提案という感じだね。
Starにはカット・コピー・ペーストなんてなかったよ。代わりに選択範囲に対する「コピー先」や「移動先」を指定する操作があった。今のドラッグ&ドロップに近いかな。どこかの有力者たちが、目に見えない不安定なクリップボード状態の方が、コピーや移動の進行中状態よりも優れていると判断したんだ。
カット・アンド・ペーストは3つの操作だよ。
カットは「コピー」と「削除」の2つの操作。コピーはUndoで元に戻ることはないんだから、カットした時もUndoで戻るべきじゃない。自分は一日に何度もカット、Undo……そしてペーストを繰り返してる。これはバグじゃなくて仕様だよ。
カット&ペーストはアトミック(不可分)ではない
そうだよ、だって2つの別々の動作だからね。
「Ghost cut」はペーストを複数回やったらどうなるの?最初にカットしたテキストをペーストして、その次は?クリップボードのその前のデータ?そもそも、もしペーストしないならエディタがクリップボードを読み取る必要があるの?もしそこに秘密のキー情報があったら、そのままCopilotや動いてる拡張機能に渡されちゃうの?
カットっていうのは、シンプルにコピーして削除することだよ。
ファイルエクスプローラーでのカット&ペーストは例えとして不適切。あれは「移動」であって、カットで最初のパラメータを指定して、ペーストで2つ目を指定する。だからペーストするまではグレーアウトして何も起きないんだ。ファイルシステムにクリップボードなんて存在しないし。それに、テキストエディタと違ってファイルブラウザで複数の場所に同じものをペーストしたいなんて場面、滅多にないでしょ。
追記:
提案されているセマンティクスがダメだと言いたいわけじゃない。人それぞれ好みはあるだろうし。ただ、それならクリップボードなんて使わずに、テキストをグレーアウトさせて移動先へ送る専用のショートカットを別個に作ればいい。それこそアトミックな「移動」として実装した方が、あらゆる面でクリーンだと思う。
「Ghost cut」ならVSCodeやWord、GDocsにもすでにあるよ。単なる「移動」として、マウスで選択範囲をドラッグすればいいだけ。
お願いだから「期待される挙動」を変えないでくれ!
著者が言及してる通りExcelはそうだけど、本来やるべき動作をしないせいで本当に面倒なんだよ。
「カット」というアクションは、即座にクリップボードへデータを送り、必要なら他のアプリにもペーストできるようにするためのものだろ。
自分の方が賢いと決めつけてユーザーの期待や通常のワークフローを壊すのは、本当にやめてほしい。アイデア自体はいいかもしれないけど、少数のために多数の利便性を損なう価値はないよ。
Dittoみたいな最近のクリップボードマネージャーを使えば、この問題はすでに解決済みじゃない?破壊的でない履歴がすぐに見れるし検索もできる。それに、クリップボードバッファを複数持てるから機能性も高いし。履歴からペーストした時にそのアイテムを一番上に持ってくるか、そのままの位置に残すかもユーザーが選べるしね。
個人的には、直前にカット・コピーしたものをペーストする専用のホットキー(Ctrl+Alt+V)を割り当ててるよ。これ、2つの要素を入れ替えたい時にめちゃくちゃ便利なんだ。Ctrl+Alt+(1~0)で履歴の1~10番目をペーストするようにしてる。
ちょっと疑問なんだけど、現在のカット&ペーストの何がそんなに問題なの?あと、アクセシビリティ技術とどう連携するんだろう?視覚的に薄くなったり透明になったりしても、アクセシビリティツリー上に残っていればスクリーンリーダーには検出されちゃうはず。(「オシャレでクリーン」に見せようとして、裏では6~10個のパネルが動的に表示・非表示されるサイトが、スクリーンリーダーユーザーにとって地獄なのもこれが理由だよね。見えなくても全てのUI要素を読み取ってしまうから。)この「変化」によって、カットしたテキストはアクセシビリティツリーから消えるの?それとも残るの?もし残るなら、この「薄くなる」という表現は視覚的には何も起きないように見えて、障害のあるユーザーを混乱させるだけじゃないかな。
ああ、カット&ペーストが壊れててくれたらどんなにいいか……。WindowsやLinuxでは、コピー&ペースト自体が壊れてるんだよ。マウスでコピーできる時もあればキーボードが必要な時もあるし、最近のMS Officeなんてその両方とも動かないことがある。Ctrl+Vでペーストできる時もあれば、Ctrl+Shift+Vが必要だったり、マウスだったり、あるいは全く反応しなかったり。こんな単純な操作こそ、OSが完全に制御して安定させるべきだったのに。