Ai tempi dei terminali fisici terminali , non esistevano appunti a livello di sessione, solo pochi programmi supportavano il copia/incolla interno - spesso sotto il nome di “buffer” o “kill ring” - e usavano varie diverse battute di tasti. Per esempio, la shell bash usa CtrlK o CtrlU per “uccidere” (tagliare), CtrlY per “strappare” (incollare); questo viene da l'editor emacs .
CtrlC quasi ovunque in Unix era il tasto “interrupt” , usato per cancellare il programma o l'operazione corrente. Il tasto CtrlV spesso significava “inserire alla lettera” - cioè inserire il seguente carattere letteralmente senza eseguire alcuna azione associata. Per esempio, un normale Esc passa in modalità comando nell'editor vi, ma CtrlV, Esc inserisce il carattere ESC
nel documento.
L'uso di CtrlC per copiare e CtrlV per incollare dagli appunti di tutta la sessione è stato introdotto da Mac OS nel 1983 e da Microsoft Windows 3.x nel 1990. (Le versioni precedenti di Windows (1.x e 2.x), così come IBM OS/2, supportavano solo i tasti IBM CUA CtrlIns per copiare e ShiftIns per incollare; queste scorciatoie rimangono supportate da tutte le versioni di Windows)
Quando le GUI con supporto per gli appunti raggiunsero finalmente Unix, i tasti Ctrl erano già in uso da molti programmi di terminale. Inoltre, l'interfaccia grafica X aveva un po’ meccanismi diversi : “selezioni” e “buffer di taglio”. Anche ora è possibile selezionare il testo in un programma e inserirlo usando il tasto centrale del mouse, senza alcuna azione esplicita di copia.
In breve, al momento della scrittura di Xterm e GNOME Terminal (suppongo che si usi quest'ultimo), CtrlV ha già avuto un significato completamente diverso per molti anni e non poteva essere cambiato. Inoltre, un metodo alternativo di copia del testo - la “selezione” - era già presente in X11, quindi l'azione esplicita di copia/incolla era probabilmente considerata non così importante come lo sarebbe stata in Windows. Questo significa che dovevano essere selezionate diverse scorciatoie da tastiera - per esempio, la maggior parte dei programmi di terminale moderni, come GNOME Terminal, usano CtrlShiftC e CtrlShiftV. (Se si usa Xterm, le stesse scorciatoie possono essere aggiunte manualmente usando XTerm*vt100*translations Xresource. Rxvt non ha tale opzione.)
(La maggior parte dei toolkit X11 supporta anche i tasti CUA “copia” e “incolla”, che non sono in conflitto con i programmi del terminale. Sfortunatamente, le implementazioni sono piuttosto incoerenti - CtrlIns copia negli “appunti” nella maggior parte dei programmi (GTK, Qt4, ma ignorati da Xaw); tuttavia, ShiftIns incolla dalla “selezione primaria” nella maggior parte dei programmi GTK e Qt4, ma dagli “appunti” in Firefox, e dai cut-buffer ora-obsolete nell'ora-obsolete Xaw. )
Detto questo, alcuni terminali o console (in particolare, la console di Windows 10) do supportano questi tasti. Dato che la console di Windows ha sempre avuto una modalità separata “mark/select”, CtrlC ora ha anche due significati basati sul contesto - in modalità normale invia un interrupt, in modalità select copia negli appunti (proprio come faceva Enter).
Nel frattempo, gli strumenti a riga di comando di Windows non hanno mai usato CtrlV per nulla, quindi era legato a “incollare” senza disturbare molto nulla. Fare lo stesso su terminali simili a Unix sarebbe però più problematico.