logo
Kurashizu Blogwhere ideas flow
  • Home
  • News
  • Blog
  • About
  • Home
  • News
  • Blog
  • About

© 2026 Kurashizu. All rights reserved.

Admin·New Post·Service Status
Powered by Cloudflare·01.11.26
← Back to news

Ghost Cut – or why Cut and Paste is broken everywhere

Original article
ishmael.textualize.io|38 points|30 comments|by willm|Jul 22, 2026

Ghost Cut: Why the "Cut and Paste" Paradigm is Fundamentally Broken

Originally published on the Ishmael Blog — July 15, 2026

Is "Cut 'n' Paste" just a colloquialism, like Fish 'n' Chips? Perhaps. But regardless of the name, the actual mechanism is broken across every single browser, code editor, and word processor in existence.

To ensure we are aligned: Cut and Paste is the sequence of removing text from a document to store it in a clipboard, then inserting that stored text elsewhere.

The Three Fatal Flaws

The traditional approach suffers from three primary systemic failures:

1. The Undo Paradox

The first issue is that a "cut" operation is not fully reversible. While hitting Ctrl+Z (or Cmd+Z) restores the text to the page, it does not restore the previous contents of your clipboard.

If you accidentally overwrite something important in your clipboard by cutting a snippet of text, that data is gone—vanished into the digital void.

Even if you employ a clipboard manager, the "Undo" command fails to cleanly revert the entire state of the operation.

2. The Reflow Problem

Cutting text causes the document to reflow immediately. Since we usually cut text specifically to move it, the instant the text disappears, the layout shifts. This forces the user to re-scan the document to find the intended destination.

While this is a minor cognitive load, it is entirely unnecessary.

3. Lack of Atomicity

Conceptually, moving text is one action. Technically, it is two. This means it cannot be undone as a single unit.

ActionResult of Undo
PasteThe newly inserted text is removed.
CutThe original text is restored (but only after the paste is undone).

If you performed any intermediate edits (like adding a new line) between the cut and the paste, you must undo all those steps before you can finally revert the original cut.


Introducing: Ghost Cut

I have implemented a solution within Ishmael that resolves these issues without requiring users to relearn their muscle memory. I call it Ghost Cut.

How it Works

Instead of removing text, Ctrl+X triggers a "ghost" state:

  • Selected text fades out.
  • Text becomes inert (non-clickable).
  • The cursor leaps over the ghosted area.
  • Crucially: The text remains in the document and nothing is sent to the clipboard.

If you change your mind, simply hitting Esc restores the text to its active, editable state. When you finally press Ctrl+V (or Cmd+V), the ghosted span is deleted from its origin and placed at the cursor.

Mathematically, the operation transforms from: DocumentA→cutClipboard→pasteDocumentB\text{Document}_A \xrightarrow{\text{cut}} \text{Clipboard} \xrightarrow{\text{paste}} \text{Document}_BDocumentA​cut​Clipboardpaste​DocumentB​ To a single atomic move: PositionA→ghostPositionB\text{Position}_A \xrightarrow{\text{ghost}} \text{Position}_BPositionA​ghost​PositionB​

The Benefits

This method is completely reversible in one stroke and prevents clipboard pollution.

Ghost Cut Demonstration Figure 1: Ghost cut in action.

Precedents and Comparisons

This isn't entirely unheard of. For example, Microsoft Excel uses a similar visual cue by fading cells that have been cut. However, this is virtually non-existent in text editors.

To achieve a similar result in a standard editor, you have to perform a two-step dance: Ctrl+C (Copy) →\rightarrow→ Backspace (Delete).

Since I rarely cut text without the intention of pasting it, Ghost Cut is a massive efficiency gain.

// Conceptual logic for Ghost Cut
if (action === 'CUT') {
    text.setOpacity(0.5);
    text.setInteractive(false);
    state.pendingMove = text;
} else if (action === 'PASTE') {
    document.insert(state.pendingMove, cursorPosition);
    state.pendingMove.remove();
}

Final Thoughts

I believe this is a superior UX pattern. I would love to see this adopted across the industry. Even in environments like VSCode, where reflow isn't an issue, the atomicity and clipboard preservation of Ghost Cut would be a welcome improvement.