Ctrl+X и Ctrl+V — привычная операция, но она сломана. В любом редакторе, среде разработки или браузерном поле работа cut & paste таит три давние проблемы.
Первая: cut нельзя полностью отменить. Undo восстанавливает текст в документе, но содержимое буфера обмена при этом теряется. Если ты случайно затер важные данные в буфере, они исчезли навсегда — даже менеджер буфера не поможет, потому что undo не откатывает само копирование.
Вторая: cut переформатирует документ. Вырезаешь текст — и он сразу исчезает, текст вокруг перестраивается. А тебе потом ещё искать, куда вставлять. Мелочь, но лишняя нагрузка на внимание.
Третья: cut & paste не атомарны. Концептуально это одно действие — переместить текст из точки А в точку Б. Но отменить его как единый шаг нельзя. После paste нужно дважды жать undo: сначала убрать вставленный текст, потом восстановить вырезанный. А если между cut и paste были другие правки (например, создали новый абзац), придётся отменять и их.
Автор добавил в свой редактор Ishmael механизм «Ghost Cut». Он работает так: нажимаешь Ctrl+X — выделенный текст бледнеет и становится инертным. Его нельзя кликнуть, курсор перепрыгивает через него, но текст физически остаётся в документе. Ничего не попадает в буфер обмена, нечего отменять. Если передумал — Escape, и текст возвращается в обычное состояние. Если вставляешь (Ctrl+V), Ghost Cut удаляет бледный фрагмент из исходного места и вставляет его в позицию курсора — всё за один атомарный шаг, без участия буфера, и отменяется одним нажатием Undo.
Прецедент есть — в Excel так работают вырезанные ячейки. Но в текстовых редакторах автор не встречал подобного.
Если нужен старый добрый cut (копирование в буфер без вставки), то это теперь два действия: Ctrl+C, а потом Backspace. Автор считает, что cut без paste использует редко — для него это явный выигрыш.
Ghost Cut хотелось бы видеть в разных редакторах. Для кода он не так критичен — там нет переформатирования при cut. Но если бы такая фича появилась в VSCode, автор, скорее всего, держал бы её включенной.