Nos dias de terminais físicos terminal , as pranchetas para toda a sessão não existiam, apenas alguns programas suportavam copiar / colar interno - geralmente sob o nome de "buffers" ou "kill rings" - e usavam vários pressionamentos de tecla diferentes. Por exemplo, o shell bash usa Ctrl K ou Ctrl U para "matar "(cut), Ctrl Y para" puxar "(colar); isso vem de o editor emacs .
Ctrl C quase em todo lugar no Unix era o tecla "interrupt" , usada para cancelar o programa ou operação atual. A tecla Ctrl V geralmente significava "verbatim insert" - isto é, inserir o caractere seguinte literalmente sem executar nenhuma ação associada. Por exemplo, um normal Esc alterna para o modo de comando no editor vi , mas Ctrl V , Esc irá inserir o caractere ESC
no documento.
O uso de Ctrl C para copiar e Ctrl V para colar da área de transferência em toda a sessão foi introduzido pelo Mac OS em 1983 e pelo Microsoft Windows 3.x em 1990. (Versões anteriores do Windows (1.xe 2.x), assim como o IBM OS / 2, suportavam apenas o Teclas IBM CUA Ctrl Ins para copiar e Deslocar Ins para colar; estes atalhos permanecem suportados por todas as versões do Windows.)
Quando as GUIs com suporte à área de transferência finalmente atingiam o Unix, as teclas pressionadas Ctrl já estavam sendo usadas por muitos programas de terminal. Além disso, a interface gráfica X tinha um pouco mecanismos diferentes :" seleções "e" buffers de corte ". Mesmo agora você pode selecionar o texto em um programa e inseri-lo usando o botão do meio do mouse, sem nenhuma ação explícita de cópia.
Em suma, no momento em que o Xterm e o Terminal GNOME foram escritos (imagino que você use o último), Ctrl V já tinha um significado completamente diferente por muitos anos e não pode ser mudado. Além disso, um método alternativo de copiar texto - a "seleção" - já estava presente no X11, portanto, a ação explícita de copiar / colar provavelmente não era considerada tão importante quanto no Windows. Isto significa que diferentes atalhos de teclado devem ser selecionados - por exemplo, a maioria dos programas terminais modernos, como o Terminal GNOME, use Ctrl Deslocamento C e < kbd> Ctrl Deslocamento V . (Se você usar o Xterm, os mesmos atalhos podem ser adicionados manualmente usando o XTerm * vt100 * traduções Xresource. O Rxvt não tem essa opção.)
(A maioria dos kits de ferramentas X11 também suportam as chaves "copiar" e "colar" CUA, que não entram em conflito com os programas terminais. Infelizmente, as implementações são bastante inconsistentes - Ctrl Ins copia para a "área de transferência" na maioria dos programas (GTK, Qt4, mas ignorados pelo Xaw), entretanto, Desloca Ins pastas da "seleção principal" na maioria das GTK e programas Qt4, mas a partir de "clipboard" no Firefox, e dos buffers de corte agora obsoletos no agora obsoleto Xaw.
Tudo isso dito, alguns terminais ou consoles (em particular, o console do Windows 10) do suportam essas chaves. Como o console do Windows sempre tinha um modo "mark / select" separado, Ctrl C agora também tem dois significados baseados em contexto - no modo normal ele envia uma interrupção, em select modo que copia para a área de transferência (assim como Enter usado para).
Enquanto isso, as ferramentas de linha de comando do Windows nunca realmente usavam Ctrl V para nada, então era obrigado a "colar" sem atrapalhar muito qualquer coisa. Fazer o mesmo em terminais do tipo Unix, no entanto, seria mais problemático.