Чому символ символу circuflex / caret використовується як символ для Ctrl?


18

Я почав користуватися консоллю Linux дуже давно, але ніколи не допитував себе про символу cirretf aka caret ( ^). Я хотів би запитати, чому воно використовується як заміна слова Ctrl.

Я думав про це днями, коли я використовував нано, і я також шукав, чи є відповіді в Інтернеті, але те, що я знайшов, були лише питання "що це таке" та "що це таке".

Чи є якісь історичні причини? Або це походить із якоїсь дивної конвенції?


2
Навіть оригінал vi(принаймні той, у SunOS 3.5) використовував caret / circumflex перед літерами для репресантів ctrl-C, ctrl-V тощо stty, це теж робив. З іншого боку, він ^працював як синонім |у скриптах оболонки протягом тієї епохи, тому вам завжди доведеться повернути нахил каре в sttyвикликах. Гарне питання.
Брюс Едігер

1
Якби я мав здогадуватися, я б сказав, що це може мати щось спільне з тим, що Shift, Control та Meta (а також їх менш відома ilk, такі як Super та Hyper) - це все модифікаційні клавіші, з яких Control є, мабуть, найбільш часто використовуваним. Оскільки більшість символів Shift версії можуть бути просто набрані (наприклад, 3/ #), це ^може бути візуальна стенограма для іншого типу "shift", так би мовити. Той факт, що для більшості набраних ключів / символів, Ctrl просто вимикає 64-бітний символ також може бути пов'язаний - ^це скорочення для NOT (0x40).
DopeGhoti

Відповіді:


11

На ^телепринтерах прирівнюється circflex ( ) до символу стрілки вгору. На той час, коли SunOS і так далі існували, ця частина минула понад 10 років. Той самий символ (заміна) був використаний у математичних виразах, наприклад, ^для повноважень (де можуть використовуватися деякі інші **). Він також використовувався в Паскалі для позначення покажчиків.

Використовується для вказівки символів керування, цей дат (принаймні) до 1980 року. Ви можете знайти його, наприклад, у документації DEC (він, безумовно, використовувався до середини 1970-х років, коли я використовував teco. Посібник з утиліти 1973 р. (Стор. 927) показує, controlCнаприклад.

Шукаючи підходяще джерело, я знаходжу коди зв'язку Teletypewriter від Gil Smith, що говорить достатньо, щоб розмістити це наприкінці 1960-х (демонструючи, що походження є і перед Unix):

ASCII-63 здебільшого був ідентичним поточній версії ASCII-67. Визначення контрольних символів (col-1 вище) варіювало між двома версіями, як визначено нижче. Також в ASCII-63 верхні 32 позиції (col-4) були невизначені, крім трьох: RUB (0x7F), ACK (0x7C) та ESC (0x7E). Існують суперечливі посилання на знак ALT-MODE (0x7D) в ASCII-63. У версії 1967 року RUB став DEL і залишився в тому самому положенні, але ACK і ESC перейшли в область контрольних символів (col-1). У ASCII-67 ^ замінено символ стрілки вгору, а _ замінила стрілку вліво

ASCII-63 і ASCII-67 є поширеними варіантами ASCII, але, мабуть, були і деякі перехідні версії: в посібнику Teletype Model 33 є посилання на версію ASCII 1965 року, яка мала замість SUB SS (0x1A), \ для @ (0x40), ~ для \ (0x5C), непарний символ замість | (0x7C), та | для ~ (0x7E). Карта коду Teletype для машин M33 та M35 вказує на версію ASCII 1966 року, хоча символи для друку, показані на картці, були однаковими у всіх версіях.

Це було загальновідомо через проблеми обміну файлами між різними кодуваннями, такими як ASCII та EBCDIC, де ще існували принтери, здатні відображати стрілки вгору як такі довгі після того, як символ ASCII більше не існував.


1
Перед тим, як 0x5e є стрілкою вгору перед тим, як ^пояснити, чому цей символ використовувався як оператор труби в оригінальній оболонці Unix (передає уявлення про передачу даних від однієї команди до іншої). Оболонку Борна досі розглядають ^як альтернативного трубопровідника (я вважаю, що це сумісність із зворотною оболонкою із оболонкою Томсона).
Stéphane Chazelas

так - нарости були надто корисними, щоб їх відпустити разом з ASCII. Це також нагадує мені про ще якесь пряме підключення клавіатури, але я не знайшов жодної картини, яка б це пояснювала.
Томас Дікі

1
0x9 (TAB) зазвичай представлено як ^I, 0x89 як M-^I, 0xc9 як M-I, 0xe9 як M-i. Чи є зараз, якщо якийсь персонаж колись використовувався для представлення мета замість M-?
Стефан Шазелас

Не назовні: я не приділяв великої уваги супер / мета / гіпер, тому що коли вони були представлені, вони зверталися лише до кількох терміналів, які більшість ніколи не бачили.
Томас Дікі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.