У часи фізичних терміналів буфера обміну для всіх сеансів не існували, лише деякі програми підтримували внутрішню копію / вставлення - часто під назвою "буфери" або "вбиваючі кільця" - і використовували різні різні натискання клавіш. Наприклад, оболонка bash використовує CtrlKабо CtrlU"вбивати" (вирізати), CtrlY"вибивати" (вставляти); це походить від в Emacs редактора .
CtrlCмайже скрізь в Unix була клавіша "переривання" , яка використовується для скасування поточної програми або операції. CtrlVКлюч часто означає «в її первісному вигляді вставку» - тобто, вставити наступний символ буквально без виконання яких - або відповідних дій. Наприклад, нормальний Escперемикається в режим в команду VI редакторі, але CtrlV, Escбуде вставляти ESC
символ в документ.
Використання CtrlCдля копіювання та CtrlVвставлення з буфера обміну на всі сесії було введено Mac OS у 1983 році та Microsoft Windows 3.x у 1990 році. (Раніші версії Windows (1.x та 2.x), а також IBM OS / 2 , підтримує лише ключі IBM CUACtrlIns для копіювання та ShiftInsвставки; ці ярлики підтримуються всіма версіями Windows.)
Коли GUI з підтримкою буфера обміну нарешті дійшли до Unix, Ctrlнатискання клавіш уже використовувалося багатьма термінальними програмами. Крім того, графічний інтерфейс X мав дещо інші механізми : "виділення" та "вирізання буферів". Навіть зараз ви можете вибрати текст в одній програмі та вставити його за допомогою середньої кнопки миші, без явних копіювальних дій.
Коротше кажучи, до того часу, коли були написані Xterm та GNOME Terminal (я гадаю, ви використовуєте останнє), CtrlV вже багато років було зовсім інше значення, і його неможливо було змінити. Крім того, альтернативний метод копіювання тексту - "виділення" - вже був присутній у X11, тому явна дія копіювання / вставки, мабуть, вважалася не такою важливою, як це було б у Windows. Це означає, що потрібно було вибрати різні комбінації клавіш - наприклад, більшість сучасних термінальних програм, таких як термінал GNOME, використання CtrlShiftCта CtrlShiftV. (Якщо ви використовуєте Xterm, ті самі ярлики можна додавати вручну, використовуючи XTerm * vt100 * переклади Xresource. Rxvt не має такої опції.)
(Більшість інструментаріїв X11 також підтримують CUA "копіювати" та "вставляти" ключі, які не суперечать термінальним програмам. На жаль, реалізації досить непослідовні - CtrlInsкопії до "буфера обміну" в більшості програм (GTK, Qt4, але ігноруються Xaw); проте, вставляє ShiftInsз "первинного вибору" у більшості програм GTK та Qt4, але з "буфера обміну" у Firefox та з застарілих відрізаних буферів у застарілому Xaw.)
Все , що сказав, деякі термінали або консолі (зокрема, для Windows 10 консолі) зробити підтримують ці ключі. Оскільки консоль Windows завжди мала окремий режим "позначити / вибрати", CtrlCтепер вона також має два значення на основі контексту - у звичайному режимі вона надсилає переривання, у вибраному режимі копіюється у буфер обміну (як і Enterраніше).
Тим часом інструменти командного рядка Windows ніколи насправді ні до чого не використовували CtrlV , тож він повинен був "вставити", не заважаючи нічого. Однак це зробити на терміналах, подібних Unix, було б більш проблематично.
Shift
-Insert
також працює