1 puntos por GN⁺ 5 시간 전 | 1 comentarios | Compartir por WhatsApp
  • El comportamiento habitual de cortar y pegar divide el movimiento de texto en dos operaciones, por lo que es imposible deshacerlo por completo y además altera innecesariamente el flujo del documento
  • Aunque se deshaga el corte, el contenido del portapapeles que fue sobrescrito no se recupera, y ni siquiera con un gestor de portapapeles se revierte todo el cambio provocado por una sola pulsación
  • Como el texto desaparece de inmediato, el documento hace reflow, así que hay que volver a encontrar el lugar donde se va a pegar, y para deshacer todo el movimiento se necesitan al menos dos deshacer
  • Ghost Cut de Ishmael, un editor de novelas, al usar Ctrl+X atenúa y desactiva la selección, y al pegar elimina el texto de su posición original y lo mueve a la nueva ubicación en una sola operación atómica
  • Ghost Cut no sobrescribe el portapapeles y permite revertir todo el movimiento de una sola vez, pero si se quiere hacer solo un corte al estilo tradicional, hay que copiar y luego pulsar Backspace

Cómo funciona cortar/pegar tradicionalmente

  • Cortar y pegar es la combinación de cortar, que quita el texto seleccionado del documento y lo pone en el portapapeles, y pegar, que lo inserta en otra ubicación
  • Se percibe como una sola acción de mover texto de un lugar a otro, pero en los editores en realidad se procesa como dos operaciones separadas

Tres fallas del corte tradicional

  • No se puede recuperar el portapapeles con Deshacer

    • Después de cortar, si se pulsa Ctrl+Z o Command+Z, el texto del documento se restaura, pero el contenido del portapapeles que fue sobrescrito no vuelve
    • Incluso usando un gestor de portapapeles, no se revierte limpiamente todo el conjunto de cambios producido por una sola pulsación
  • Al borrar el texto original, el documento se reacomoda de inmediato

    • En el momento en que se corta el texto, el contenido restante se recorre y las líneas y posiciones del documento se redistribuyen
    • En la mayoría de los casos, cortar/pegar busca mover texto, pero antes incluso de encontrar el punto donde pegar, la pantalla ya cambió y hay que ubicar de nuevo la posición
    • La carga puede ser pequeña, pero genera un costo cognitivo innecesario
  • El movimiento no se trata como una operación atómica

    • Si se deshace el pegado, solo se elimina el texto insertado en la nueva ubicación; para restaurarlo en la ubicación original hay que deshacer una vez más
    • Si entre cortar y pegar hubo otra edición, como crear un nuevo párrafo, hay que ir deshaciendo esas acciones en orden hasta llegar al corte original
    • Conceptualmente es un solo movimiento de texto, pero en el historial de edición queda dividido en varios pasos

Cómo funciona Ghost Cut

  • En Ishmael, al pulsar Ctrl+X, el texto seleccionado se atenúa y queda desactivado, pero sigue visible en el documento
    • No se puede hacer clic en esa zona y el cursor también la omite
    • En este punto no se guarda nada en el portapapeles ni se genera ninguna acción para deshacer
    • Si se pulsa Escape, el texto vuelve a quedar editable
  • Al pulsar Ctrl+V o Command+V, el área atenuada se elimina de su ubicación original y se mueve a la posición actual del cursor
    • Todo el movimiento es una sola operación atómica, así que puede deshacerse con una sola acción
    • Es parecido a cómo Excel muestra atenuadas las celdas cortadas, pero es difícil encontrar el mismo enfoque en editores de texto
  • Si se necesita el comportamiento tradicional de cortar, hay que copiar con Ctrl+C o Command+C y luego borrar el texto original con Backspace
  • En los editores de código, el problema del reflow del documento es menor, así que la necesidad es relativamente más baja, pero si estuviera disponible en VSCode, valdría la pena activarlo y usarlo

1 comentarios

 
GN⁺ 5 시간 전
Comentarios en Hacker News
  • Ojalá no estorbaran la selección/pegado de X11. Ahora cada vez hay que dejarlo a la suerte para saber si hay que presionar Shift para usarlo como antes
    Hacer que copiar y pegar use tanto el mouse como el teclado con el método seleccionar → Ctrl+C → clic → Ctrl+V es una barbaridad, y las apps modernas están arruinando algo que X11 implementó bien

  • Cortar y pegar son tres acciones; cortar se compone de copiar y borrar. Así como deshacer no revierte una copia, tampoco debería revertir el contenido del portapapeles de un corte, y a diario uso el flujo de cortar, deshacer y luego pegar varias veces
    Me pregunto qué debería salir al pegar varias veces con Ghost Cut, si el editor tendría que leer el portapapeles aunque ni siquiera haya pegado para poder hacer rollback, y si, en caso de contener una clave secreta, quedaría expuesta a extensiones como Copilot
    En el explorador de archivos, cortar es en realidad un mover donde se indican origen y destino por separado; tampoco existe un portapapeles del sistema de archivos y rara vez se pega en varios lugares. No es que la semántica propuesta sea mala, pero sería más limpio como una función independiente con otro atajo que atenúe visualmente el texto y luego lo mueva de forma atómica

    • Cortar y pegar deberían ser una sola acción atómica. Si quieres pegar varias veces, entonces copia
      Deshacer un corte sin revertir sus efectos secundarios es un defecto fundamental, y deshacer no debería retroceder solo algunos pasos según el caso, sino restaurar el sistema a su estado anterior
    • Proponer una función de movimiento atómico conveniente para editores de texto es razonable, pero en lo personal no la necesito mucho
    • Atenuar el texto y luego moverlo al lugar deseado es básicamente lo mismo que arrastrar y soltar en macOS
    • No entiendo por qué se critica el flujo de copiar un archivo con ⌘+C en Finder de macOS y luego moverlo con ⌘+⌥+V o copiarlo con ⌘+V en el destino. Decidir la acción en el destino es lo más intuitivo
      Windows también atenúa los archivos cortados y los mueve al pegar para evitar pérdidas, pero esa buena experiencia de usuario no recibe suficiente reconocimiento
    • Si pegas varias veces, da la impresión de que en realidad querías copiar. Ningún modelo mental es absolutamente correcto; si cortar es copiar y borrar, puedes copiar y borrar tú mismo, y en Vim y Emacs basta con borrar
  • Ghost Cut es casi igual al cortar/pegar de Excel, e incluso puede que ni use el portapapeles. El software común lo ve como copiar y pegar con un borrado añadido, pero el autor y Excel lo ven como mover contenido dentro del documento
    Ghost Cut tiene la restricción de que el destino debe ser exactamente uno y estar dentro del mismo programa o documento. Aun así, si al final el corte existente no es más que una variante de copiar y pegar, parece que no se pierde mucho al cambiar a Ghost Cut, porque el mismo efecto puede lograrse con copiar y luego Backspace

    • En el IDE a menudo uso cortar sin selección, dejando el cursor en cualquier parte de la línea, para borrar toda la línea. Es un atajo cómodo para la mano izquierda, y Ghost Cut arruina ese uso
  • La experiencia de usuario del corte predeterminado simplemente no coincide con el modelo mental personal del autor; no es un defecto. Si cortaste por error, normalmente querías copiar, así que tiene sentido que el texto permanezca en el portapapeles
    La mayoría entiende deshacer como deshacer cambios en el archivo, no como revertir al mismo tiempo el estado del archivo y del sistema operativo. Vale la pena considerar un corte configurable, pero sería más bien una alternativa pensada para una minoría y no para la mayoría

    • No veo ese comportamiento como un defecto, pero respeto que se señalen sus desventajas y se proponga una alternativa. Uso bastante seguido ese comportamiento de conservar el portapapeles donde cortas algo, lo pones en el portapapeles, deshaces solo el cambio y luego usas ese contenido
    • Prefiero cortar o copiar texto, deshacer unos pasos y luego pegarlo en una ubicación nueva. Con la propuesta habría que agregar un paso intermedio, como pegarlo en un archivo temporal antes de deshacer
  • Cortar es una acción donde la app mueve texto al portapapeles, que es una aplicación separada. Así como no esperas que al deshacer en la app B también cambie la app A después de haberla editado, tampoco esperas que deshacer afecte el portapapeles
    Ghost Cut se parece a Excel, y por eso me desconcierta seguido. En Excel, si copias una celda, la editas y luego intentas pegarla, a veces resulta que la copia no era el valor real sino una referencia al rango seleccionado, y si ese rango cambió o se deshizo, terminas sin poder pegar nada

  • Si se diseñara desde cero, la crítica al cortar/pegar actual es razonable. Aun así, como cortar y pegar son dos acciones, suena raro afirmar que una sola operación de deshacer debería revertir ambas
    Se parece a una elección tipo RISC/CISC sobre si el comando es uno solo, CUTANDPASTE, o dos, CUT y PASTE

  • No deberían cambiar un comportamiento esperado. Excel funciona de forma parecida, pero es muy incómodo precisamente porque no hace lo que uno espera
    Cortar debería poner de inmediato el contenido en el portapapeles para poder pegarlo también en otros programas, y no vale la pena romper las expectativas y el flujo normal de la mayoría por mejorar algo solo para unos pocos

    • Hay demasiadas condiciones límite, como si el texto no pegado seguiría atenuado, o qué se pegaría si en otra app copias texto nuevo: el texto atenuado o el nuevo contenido del portapapeles
      Si Ctrl+X no toca el portapapeles, tampoco podrías pegar en otro programa. El beneficio es demasiado pequeño comparado con los dolores de cabeza que aparecen al salirse del flujo ideal
  • Es una perspectiva válida, pero me cuesta estar de acuerdo. Preferiría que primero resolvieran el secuestro de copia, cuando un sitio o app dice ayudarte a copiar el elemento seleccionado pero mete algo completamente distinto
    Tampoco quiero que el navegador agregue por su cuenta https:// cuando copio una URL

  • Windows Explorer también funciona de forma parecida al cortar archivos, pero también lo registra en el portapapeles
    Ghost Cut igual estaría roto de una manera distinta al comportamiento existente, solo que más acorde con el gusto del autor. Aun así, es una idea interesante para pensar cómo habrían evolucionado otras apps si cortar/pegar no se hubiera concebido como una función de todo el sistema y entre aplicaciones

  • No creo que me gustara este enfoque. De forma parecida, Excel es la app que más odio para cortar, copiar y pegar

    • Creo que Excel, pese a algunos defectos, está muy bien diseñado para la mayoría de los usuarios. No solo hay contenido de celdas sino también referencias de celdas, así que cortar y copiar funcionan de manera sutilmente distinta
      Como cortar suele ser un movimiento atómico que termina con un solo pegado, todas las referencias relacionadas se actualizan sin importar si están dentro o fuera del rango movido, ni si son relativas o absolutas. Por eso, después de pegar desaparece el indicador y no se puede pegar dos veces
      En cambio, al copiar solo se actualizan las referencias relativas entre las celdas copiadas; las referencias absolutas o las referencias desde celdas no copiadas no cambian, y se puede pegar varias veces. Si además se consideran las referencias a rangos, ya sorprende que esto funcione de forma tan predecible, y también se entiende la restricción de que si modificas el rango original la operación se cancela. Por eso, en Excel copiar y luego borrar no equivale a cortar
    • Con Excel siento que cada vez elige la peor forma posible de copiar, cortar o pegar según mi intención. Seguramente no es así en realidad, pero en lo personal me resulta muy poco intuitivo en muchos sentidos
    • En Excel primero copio, luego pego y después borro el original. El cortar/pegar normal rompe las fórmulas que hacen referencia al lugar donde se va a pegar
      Deberían haber mantenido el corte predeterminado y asignado ese movimiento especial a Ctrl+Shift++
    • Más o menos la mitad de las veces ni siquiera funciona bien