# Ghost Cut: カットとペーストのワークフローを再考する
Ghost Cut: カットとペーストのワークフローを再考する
Traditional Cut and Pasteの根本的な欠陥
現代のワードプロセッサーやコードエディターにおける従来のカットアンドペースト操作は概念的に断片化されており、これが3つの主要なユーザビリティ問題を引き起こします:
- 元に戻せないクリップボード状態: 「undo」コマンドはドキュメントから削除されたテキストを復元しますが、システムクリップボードの以前の内容は復元しません。テキストがカットされると、サードパーティ製のクリップボードマネージャーを使用しない限り、以前のクリップボードデータは永久に失われます。
- 即時ドキュメントリフロー: テキストをカットするとすぐにレイアウトから削除され、周囲のテキストがずれます。これにより、ユーザーは意図したペースト先を見つけるためにドキュメントを再スキャンしなければならなくなり、不要な認知負荷が加わります。
- 原子性の欠如: テキストの移動は概念的には単一のアクションですが、技術的には2つの別々の操作(カット then ペースト)です。ペーストの元に戻しは挿入されたテキストのみを削除します;元のテキストを元の場所に戻すには、もう1回の元に戻しが必要です。
Ghost Cutの紹介
Ghost Cutは、システムクリップボードに依存せず、テキストの移動を単一の原子的操作として扱うように設計された、Ishmaelエディターに実装されたメカニズムです。
Ghost Cutの仕組み
- カットフェーズ:
Ctrl+X(またはCmd+X) を押してもテキストは削除されず、クリップボードにも入りません。代わりに、選択されたテキストを「ゴースト」状態にし—フェードアウトさせて無効にします。カーソルはこのゴーストテキストを飛び越えますが、テキストは元の場所に視覚的に残ります。 - ペーストフェーズ:
Ctrl+V(またはCmd+V) を押すと、ゴースト状態のスパンがソースから削除され、現在のカーソル位置に挿入されます。 - キャンセル: ユーザーがテキストを移動しないと決めた場合、
Escapeを押すとゴーストテキストがアクティブで編集可能な状態に戻ります。
By bypassing the clipboard for the move operation, Ghost Cut ensures the process is completely reversible in a single stroke and prevents the accidental overwriting of existing clipboard data.
トレードオフとセマンティクス
Ghost Cutは Ctrl+X の動作を変更するため、従来の「ペーストなしのカット」(他の場所で使用するためにテキストを削除して保存する操作)は、テキストをコピーする (Ctrl+C) とその後削除する (Backspace) の2手順が必要になります。
コミュニティの視点と批判
Ghost Cutをめぐる技術的な議論は、従来のカットアンドペーストが「壊れている」か、あるいは特定のワークフローに合わせた設計選択の単なるセットかという根本的な意見の相違を浮き彫りにしています。
Ghost Cutに対する議論
批判者は、現在のシステムは専用の「移動」コマンドよりも柔軟性の高いプリミティブ操作のセットであると主張しています:
「カットはペーストなしで使用でき、ペーストは複数回使用できます。これらは組み合わせ可能なプリミティブ操作です。」
- 筋肉記憶:
Ctrl+Xのような普及したショートカットの動作を変更すると、何十年もの標準OSの動作に慣れたユーザーに不満を抱かせる可能性があります。 - アクセシビリティ: 「ゴースト」された(フェードアウトされた)テキストがスクリーンリーダーとどのように相互作用するかに関する懸念があります。テキストがアクセシビリティツリーに残っているが視覚的にフェードアウトされている場合、支援技術に依存するユーザーを混乱させる可能性があります。
- クロスアプリケーションの有用性: システムクリップボードのため、従来のカットアンドペーストは異なるアプリケーション間で機能します。「ゴースト」状態は単一のエディター内に局在し、異なるプログラム間でテキストを移動するために使用することはできません。
代替ソリューション
一部のユーザーは、既存の問題はアプリケーションレベルの変更ではなくOSレベルのツールで解決するほうが良いと提案しています:
- クリップボードマネージャー: Ditto のようなツールは非破壊的な履歴を提供し、新しい「カット」の意味論を必要とせずにユーザーが以前のクリップボード状態を復元できるようにします。
- ドラッグアンドドロップ: 多くのエディター(VS Code, Google Docs)は、マウス駆動のドラッグによる「移動」操作をすでに実装しており、これは Ghost Cut と同じ原子的結果を達成します。
- 特殊なエディター機能: 特定の Emacs 設定などの一部のレガシーエディターは、ユーザーが選択した2つの単語の位置を瞬時に交換できる「スワップ」操作を備えていました。