- O recortar e colar tradicional trata a movimentação de texto como duas operações separadas, tornando impossível um desfazer completo e alterando desnecessariamente o fluxo do documento
- Mesmo ao desfazer o recorte, o conteúdo da área de transferência sobrescrito não é restaurado, e mesmo usando um gerenciador de clipboard não é possível reverter de uma vez todas as mudanças causadas por um único atalho
- Como o texto some imediatamente e o documento sofre reflow, é preciso reencontrar o ponto onde colar, e desfazer toda a movimentação exige pelo menos dois comandos de desfazer
- O Ghost Cut do editor de romances Ishmael usa
Ctrl+Xpara esmaecer e desativar a seleção e, ao colar, removê-la da posição original e movê-la para a nova posição em uma única operação atômica - O Ghost Cut não sobrescreve a área de transferência e permite desfazer toda a movimentação de uma só vez, mas para fazer apenas o recorte no modo tradicional é preciso copiar e depois pressionar
Backspace
Como o recortar/colar tradicional funciona
- Recortar/colar é a combinação de recortar, que remove o texto selecionado do documento e o coloca na área de transferência, e colar, que o insere em outro lugar
- Embora seja percebido como uma única ação de mover texto de um lugar para outro, na prática os editores tratam isso como duas operações separadas
Três falhas do recorte tradicional
-
Não dá para restaurar a área de transferência com desfazer
- Depois de recortar, ao pressionar
Ctrl+ZouCommand+Z, o texto no documento é restaurado, mas o conteúdo da área de transferência que foi sobrescrito não volta - Mesmo usando um gerenciador de clipboard, isso ainda não significa reverter de forma limpa todas as mudanças causadas por um único atalho
- Depois de recortar, ao pressionar
-
Apagar o texto original reorganiza o documento imediatamente
- No instante em que o texto é recortado, o conteúdo restante sobe e as linhas e posições do documento são reorganizadas
- Na maioria dos casos, o objetivo de recortar/colar é mover texto, mas a tela muda antes mesmo de você encontrar o ponto de colagem, obrigando a procurar de novo o local
- O custo pode ser pequeno, mas gera uma carga cognitiva desnecessária
-
A movimentação não é tratada como uma operação atômica
- Ao desfazer a colagem, só o texto inserido na nova posição é removido; para restaurá-lo à posição original é preciso desfazer mais uma vez
- Se houve edições entre o recorte e a colagem, como criar um novo parágrafo, é preciso desfazê-las uma a uma até chegar ao recorte original
- Conceitualmente é uma única movimentação de texto, mas no histórico de edição ela fica dividida em várias etapas
Como o Ghost Cut funciona
- No Ishmael, ao pressionar
Ctrl+X, o texto selecionado fica esmaecido e em estado desativado, mas continua no documento- Essa área não pode ser clicada, e o cursor a ignora
- Nesse momento, nada é salvo na área de transferência e nenhuma ação de desfazer é criada
- Ao pressionar
Escape, o texto volta ao estado editável
- Ao pressionar
Ctrl+VouCommand+V, a área esmaecida é removida da posição original e movida para a posição atual do cursor- Toda a movimentação é uma única operação atômica, então pode ser desfeita com um único comando
- É parecido com a forma como o Excel mostra células recortadas esmaecidas, mas é difícil encontrar a mesma abordagem em editores de texto
- Se for necessário o comportamento tradicional de recortar, basta copiar com
Ctrl+CouCommand+Ce depois apagar o original comBackspace - Em editores de código, o problema de reflow do documento é menor, então a necessidade é relativamente mais baixa, mas se isso existisse no VSCode, valeria a pena ativar e usar
1 comentários
Comentários no Hacker News
Espero que não atrapalhem a seleção/colagem do X11. Hoje em dia, para usar como antes, parece que toda vez depende da sorte saber se é preciso segurar Shift
Fazer copiar e colar usar mouse e teclado ao mesmo tempo, no esquema
selecionar → Ctrl+C → clicar → Ctrl+V, é bárbaro, e apps modernos estão estragando o que o X11 implementou direitoRecortar e colar são três operações; recortar é composto de copiar e apagar. Assim como desfazer não reverte a cópia, também não deveria reverter o conteúdo da área de transferência de um recorte, e eu uso todo dia o fluxo de recortar, desfazer e depois colar várias vezes
Fico em dúvida sobre o que deveria acontecer ao colar várias vezes com o Ghost Cut, se o editor teria de ler a área de transferência sem nem ter colado para fazer rollback, e se, caso houvesse uma chave secreta ali, isso a exporia a extensões como o Copilot
No explorador de arquivos, recortar é na verdade um mover em que se definem origem e destino em sequência; não existe uma área de transferência do sistema de arquivos, e também é raro precisar colar em vários lugares. Não acho a semântica proposta ruim, mas seria mais elegante como um recurso independente, com atalho próprio, que deixa o texto esmaecido e depois o move de forma atômica
Desfazer um recorte sem reverter os efeitos colaterais é um defeito fundamental; desfazer não deveria voltar só alguns passos conforme a condição, e sim restaurar o sistema ao estado anterior
⌘+Ce depois, no destino, mover com⌘+⌥+Vou copiar com⌘+V. Decidir a ação no destino é o mais intuitivoO Windows também deixa o arquivo recortado esmaecido e o move ao colar, evitando perda de arquivos, mas esse bom UX não recebe reconhecimento suficiente
Ghost Cut é quase igual ao recortar/colar do Excel e talvez nem use a área de transferência. Softwares comuns veem isso como cópia e colagem com um apagamento acrescentado, mas o autor e o Excel veem como mover conteúdo dentro do documento
O Ghost Cut tem a restrição de que o destino precisa ser exatamente um e estar no mesmo programa ou documento. Ainda assim, se o recorte atual já é no fim uma variação de copiar e colar, então
copiar e depois Backspaceproduz quase o mesmo efeito, então não parece haver tanta perda em trocar para Ghost CutO problema não é um defeito do recorte padrão, e sim que a UX dele não bate com o modelo mental pessoal do autor. Se alguém recortou por engano, em geral queria copiar, então faz sentido manter o texto na área de transferência
A maioria entende desfazer como desfazer mudanças no arquivo, não como reverter ao mesmo tempo o estado do arquivo e do sistema operacional. Vale considerar um recorte configurável, mas isso parece mais uma alternativa para uma minoria do que algo melhor para a maioria
Recortar é uma operação em que o app move texto para a área de transferência, que é uma aplicação separada. Assim como ninguém espera que, ao editar o app A e depois desfazer no app B, o A também mude, eu também não esperaria que desfazer afetasse a área de transferência
O Ghost Cut é parecido com o Excel, e por isso me pega de surpresa com frequência. No Excel, às vezes você copia células, faz uma edição e depois tenta colar, mas a cópia não era o valor em si, e sim uma referência à seleção; se aquela área foi alterada ou desfeita, acaba não sendo possível colar nada
Se fosse projetado do zero, a crítica ao recortar/colar atual é razoável. Mas, como recortar e colar são duas operações, a ideia de que um único desfazer deveria reverter as duas soa estranha
É parecido com uma escolha no estilo RISC/CISC entre ter um único comando
CUTANDPASTEou dois,CUTePASTENão se deve mudar o comportamento esperado. O Excel funciona de modo parecido, mas é muito incômodo justamente porque não faz do jeito que eu quero
Recortar deveria ir imediatamente para a área de transferência para também poder ser colado em outros programas, e não vale quebrar a expectativa e o fluxo normal da maioria para melhorar algo para uma minoria
Se
Ctrl+Xnão mexer na área de transferência, também não dá para colar em outro programa. O ganho é pequeno demais perto das dores de cabeça que surgem quando se sai do fluxo idealÉ uma perspectiva válida, mas difícil concordar. Antes, eu preferia que resolvessem o sequestro de cópia, quando um site ou app, ao tentar ajudar, coloca algo completamente diferente do item selecionado
Também não quero que o navegador acrescente
https://arbitrariamente ao copiar uma URLO Windows Explorer também se comporta de forma parecida ao recortar arquivos, mas também registra na área de transferência
O Ghost Cut, do mesmo modo, só estaria quebrado de um jeito diferente do comportamento atual, embora combine mais com o gosto do autor. Ainda assim, é uma ideia interessante que faz pensar em como outros apps teriam evoluído se recortar/colar não tivesse sido criado como um recurso de sistema e entre aplicativos
Acho que eu não gostaria desse esquema. O Excel é o app que eu mais odeio para recortar, copiar e colar entre os que se comportam de forma parecida
Recortar normalmente é um movimento atômico concluído com uma única colagem, então todas as referências relacionadas são atualizadas, independentemente de estarem dentro ou fora da área movida e de serem relativas ou absolutas. É por isso também que o indicador some depois de colar e não dá para colar duas vezes
Já ao copiar, só as referências relativas entre as células copiadas são atualizadas; referências absolutas ou referências de células não copiadas não mudam, e dá para colar várias vezes. Quando se considera até referências de intervalo, é impressionante que isso funcione de forma tão previsível, e a restrição de a operação ser cancelada ao modificar a área original também é compreensível. Portanto, no Excel, copiar e depois apagar não é a mesma coisa que recortar
Deveriam ter mantido o recorte padrão e atribuído esse movimento especial a
Ctrl+Shift++