曲折/キャレット文字がCtrlの記号として使用されるのはなぜですか?


18

私はずっと前にLinuxコンソールを使い始めましたが、キャレット文字(キャレット文字^)について曲がり角に疑問を抱くことはありませんでした()。単語の代わりに使われている理由を尋ねたいと思いCtrlます。

先日、nanoを使用しているときに考えました。また、インターネット上でいくつかの答えがあるかどうかも検索しましたが、見つけたのは「それが何であるか」と「それが表すもの」に関する質問だけでした。

歴史的な理由はありますか?それとも奇妙な慣習から来ているのでしょうか?


2
オリジナルvi(少なくともSunOS 3.5のもの)でさえ、ctrl-Cやctrl-Vなどを表すために文字の前にキャレット/サーカムフレックスを使用しましたstty。一方、その時代にはシェルスクリプトの^同義語として働いていた|ので、stty呼び出しでは常にキャレットをバックスラッシュする必要がありました。良い質問。
ブルースエディガー

1
推測する必要がある場合、Shift、Control、Meta(およびSuperやHyperなどのあまり知られていないilk)がすべて修飾キーであるという事実と関係があるかもしれません。おそらく最も一般的に使用されます。ほとんどの文字のShiftedバージョンは単純に入力できるため(たとえば3/ #)、^いわば「シフト」のさまざまな種類の視覚的な省略形になる可能性があります。ほとんどの入力可能なキー/文字について、Ctrlは文字の64ビットをオフにするだけであるという事実も関係している可能性があります-の^略記ですNOT (0x40)
-DopeGhoti

回答:


11

サーカムフレックス(^)は、テレプリンター上の上矢印文字と同等でした。SunOSなどが登場する頃には、この部分は過去10年以上でした。同じ文字(交換)は、例えば、数学的な表現で使用された^(いくつかの他の人が使用する可能性のある力のため**)。また、ポインターを示すためにPascalで使用されました。

制御文字を示すために使用され、この日付は(少なくとも)1980年以前です。たとえば、DECのドキュメントで使用されています(tecoを使用した1970年代中頃に使用されていました。1973年のユーティリティマニュアル(927ページ)controlC例えばを示しています。

適切なソースを探して、1960年代後半にこれを配置するのに十分だと言っているGil SmithのTeletypewriter Communication Codesを見つけました(起源もUnixより前であることを示しています)。

ASCII-63は、現在のASCII-67バージョンとほとんど同じでした。制御文字(上記の列1)の定義は、以下に定義するように2つのバージョン間で異なります。また、ASCII-63では、上位32桁(col-4)は未定義でしたが、3つを除きます:RUB(0x7F)、ACK(0x7C)、およびESC(0x7E)。ASCII-63のALT-MODE文字(0x7D)への一貫性のない参照があります。1967バージョンでは、RUBはDELになり、同じ位置にとどまりましたが、ACKとESCは制御文字領域(col-1)に移動しました。ASCII-67では、^は上矢印記号を置き換え、_は左矢印を置き換えました

ASCII-63およびASCII-67はASCIIの一般的なバリアントですが、いくつかの移行バージョンもあったようです:Teletype Model 33マニュアルには、SUBの代わりにSSがあった1965バージョンのASCIIへの参照があります(0x1A)、@の場合の\(0x40)、\の場合の〜(0x5C)、|の代わりの奇数文字 (0x7C)、および| 〜(0x7E)。M33およびM35マシン用のTeletypeコードカードは、ASCIIの1966バージョンを示しますが、カードに表示される印刷可能な文字はすべてのバージョンで同一でした。

これはよく知られていました。ASCIIやEBCDICなどの異なるエンコーディング間でファイルを交換する問題のため、文字がASCIIに存在しなくなった後もずっと上矢印をレンダリングできるプリンタが残っていました。


1
0x5eは上矢印である^ため、その文字が元のUnixシェルでパイプ演算子として使用された理由も説明します(あるコマンドから別のコマンドにデータが流れるという考えを伝えます)。Bourneシェルは、引き続き^代替のパイプ演算子として処理します(Thomsonシェルとの後方互換性のために)。
ステファンシャゼル

はい-ASCIIでは、上矢印を手放すにはあまりにも便利でした。これはまた、キーボードとの直接的な結びつきを思い出させますが、説明する絵は見つかりませんでした。
トーマスディッキー

1
0x9(TAB)は通常^I、0x89としてM-^I、0xc9としてM-I、0xe9として表されM-iます。代わりにメタを表すために何らかのキャラクターが使用されたことがある場合、あなたは今M-ですか?
ステファンシャゼル

オフハンドではありません:スーパー/メタ/ハイパーに導入されたときには、ほとんど見たことのない少数の端末にしか適用されないため、スーパー/メタ/ハイパーにはあまり注意を払いませんでした。
トーマスディッキー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.