HN 日本語サマリー

← 一覧へ戻る
プログラミング

Ghost Cut – カット&ペーストが至るところで壊れている理由

Ghost Cut – or why Cut and Paste is broken everywhere (ishmael.textualize.io)

170 pointsby willm116 コメント

要約

この記事では、一般的なカット&ペースト機能が抱える3つの欠点(カット操作の取り消しが不完全、カットによるテキストの再配置、カット&ペースト操作がアトミックでないこと)を指摘しています。そして、これらの問題を解決する「Ghost Cut」という新しいメカニズムを提案しています。Ghost Cutは、テキストを一時的に非アクティブにするだけでクリップボードにコピーせず、必要に応じて元に戻したり、ペースト操作と統合したりすることで、より直感的で安全なテキスト移動を実現します。

全文翻訳

あなたがこれまで使ったことのあるあらゆるワードプロセッサ、コードエディタ、ブラウザのテキストエリアで、カット&ペーストは壊れています。そして、それは何十年も前からそうでした。 まず、カット&ペーストが何を意味するかを確認しましょう。カット&ペーストは、文書からテキストを削除してクリップボードに配置する「カット」と、そのテキストを文書の新しい場所に挿入する「ペースト」の2つの操作の組み合わせです。 それがこれほど普及しているのに、どのように壊れているのでしょうか?いくつかの方法を挙げましょう! 1. カットは取り消せない カット&ペーストの最初の欠点は、カット操作を完全に元に戻せないことです。カット後の取り消し(Ctrl+ZまたはCommand+Z)は、文書内のテキストをカット前の状態に戻しますが、クリップボードの内容の変更はそのまま残ります。もしクリップボードの内容を置き換えたことを後悔しても、それはデジタルエーテルの中に消えてしまっただけです。クリップボードマネージャーを使っていたとしても、取り消し操作は、その一つのキー操作がしたことのすべてをきれいに元に戻してはいません。 2. カットは再配置を引き起こす 2つ目の欠点は、カット操作が文書の再配置を引き起こすことです。カット&ペーストは、ほとんどの場合テキストを移動するために行われますが、カットした瞬間にテキストは再配置され、貼り付けたい場所を再び見つけ直す必要があります。これは些細な認知的な負担かもしれませんが、不必要なものだと私は主張します。 3. カット&ペーストはアトミックではない 3つ目の、そして最後の欠点は、カット&ペーストは概念的にはテキストをある場所から別の場所へ移動する単一のアクションであるにもかかわらず、単一のステップで元に戻すことができないことです(クリップボードの問題は一旦無視します)。ペーストの取り消しは新しく追加されたテキストを削除しますが、テキストを完全に復元するには2回目の取り消しが必要です。ただし、カットとペーストの間に編集がなかった場合です。もし新しい段落を作成するなどの中間編集があった場合、元のカット操作に戻る前にそれらを元に戻す必要があります。 Ghost Cutの紹介 私はIshmaelに、これらの欠点を「修正」するメカニズムを追加しました。良いニュースは、筋肉の記憶を再トレーニングしたり、現在行っていること以上のことをする必要がないことです。 私はこれを「Ghost Cut」と呼び、次のように機能します。 Ctrl+Xを押すと、選択されたテキストがフェードアウトし、不活性になります。カットされたテキストをクリックすることはできず、カーソルはそれを飛び越えるようになりますが、文書内にはまだ存在します。この時点では何もクリップボードにはコピーされず、取り消すものもありません。もし貼り付けたくない場合は、Escapeキーを押すとテキストはアクティブな編集可能な状態に戻ります。 貼り付け(通常のCtrl+VまたはCommand+V)は、元の場所からゴースト化された範囲を削除し、カーソル位置に配置します。これにより、クリップボードを介さずに、単一のアトミックな移動操作が作成されます。言い換えれば、完全に元に戻すことができ、クリップボードを汚染することなく、一度の操作で取り消すことができます。 これが実際に動作している様子です。 Ghost cut in action これは前例がないわけではありません。Excelのようにカットされたセルをフェードアウトさせるような類似の機能を持つアプリはありますが、テキストエディタでは見たことがありません。 副作用 元のカット&ペーストのセマンティクスが必要な場合はどうなるでしょうか?Ghost Cutでは、それは1つのキーではなく2つのキー操作になります。クリップボードへのコピー(Ctrl+CまたはCommand+C)の後に、元の文書から削除するためにBackspaceキーを押します。私はペーストなしでカット操作を使うことが非常に少ないため、これは私にとって明確なメリットです。 結論 私は、あらゆる種類のテキストエディタがこれを採用してくれることを非常に嬉しく思います。コードエディタでのケースは、確かにそれほど強くはありません。コードは再配置の問題に悩まされませんが、それでも、VSCodeでGhost Cutが存在すれば、それを有効にして作業している自分を想像できます。 ← 全ての投稿