Warum wird ^M
ein Wagenrücklauf in VIM und anderen Kontexten dargestellt?
Ich vermute, dass dies M
der 13. Buchstabe des lateinischen Alphabets ist und ein Wagenrücklauf \x0D
oder eine Dezimalzahl ist 13
. Ist das der Grund? Ist diese Darstellung irgendwo dokumentiert?
Ich stelle fest, dass Tab durch dargestellt wird ^I
. Dies ist der neunte Buchstabe des lateinischen Alphabets. Umgekehrt ist Tab \x09
oder Dezimal 9
, was meine oben angegebene Theorie unterstützt. Wo könnte dies jedoch als Tatsache dokumentiert werden?
terminal
encoding
special-characters
dotancohen
quelle
quelle
^H
ein Zeichen gelöscht oder ein Überdrucken zugelassen wird (z. B.n^H~
als veraltete Methode zur Erstellung von ñ) oder ob das Steuerzeichen tatsächlich anderweitig verwendet wird.Antworten:
Ich glaube, dass das, worüber OP tatsächlich gefragt hat, Caret-Notation heißt .
Die vollständige Liste der ASCII-Steuerzeichen zusammen mit der Caret-Notation finden Sie hier
In Bezug auf vim und andere Texteditoren: Normalerweise wird ^ M nur angezeigt, wenn Sie eine Windows-formatierte Textdatei (CRLF) in einem Editor öffnen, der Linux-Zeilenenden (LF) erwartet. Das 0x0A wird als Zeilenumbruch gerendert, das 0x0D unmittelbar bevor es als ^ M ausgegeben wird. Zu den Standardeinstellungen des Editors gehört in der Regel "Zeilenenden automatisch erkennen".
quelle
^A
ist0x41 xor 0x40
oder0x01
und^?
ist0x3F xor 0x40
oder0x7F
.<---
Schlüssel (verwirrenderweise auch als Rücktaste bezeichnet) auf VT100-ähnlichen Terminals generiert wird .Das ist genau der Grund.
ASCII definiert die Zeichen 0-31 als nicht druckbare Steuercodes. Hier ist ein Auszug aus der
ascii(7)
Handbuchseite eines zufälligen Linux-Systems (man ascii
) bis einschließlich CR (13):Herkömmlicherweise werden diese Zeichen mit Controldem Buchstaben erzeugt, der sich auf das erforderliche Zeichen bezieht. Teletypen und frühe Terminaltastaturen hatten Gaus diesem Grund "BELL" über der Taste geschrieben .
Das Standarddokument, das ASCII definiert, ist ASA X3.4-1963 , das 1963 von der American Standards Association veröffentlicht wurde. Ich kann das Originaldokument nicht auf ihrer Website finden, aber dieser Auszug aus dem Originaldokument zeigt die Zeichentabelle, einschließlich die obigen Steuercodes.
quelle
^M
steht für Control-M. Auf dem Terminal würden Sie die Steuertaste zusammen mit der M-Taste drücken, um den ASCII-Kode 0x0D, auch als Wagenrücklauf bezeichnet, zu senden.Die Notation geht auf die frühesten ASCII-Teletypen (ca. 1963) zurück. Es gab eine STRG-Taste, die das 0x40-Bit umschaltete, sodass STRG-M (Wagenrücklauf) 0D statt 4D lautete, STRG-G (Glocke) 07 statt 47 lautete und STRG-L (Formularvorschub) 0C lautete von 4C.
Es gab kein "Design" bei der Zuweisung bestimmter Buchstaben zu bestimmten Funktionen, es war nur Zufall, dass, als sich der Staub von der Zuweisung von ASCII-Codes löste, die M-Taste ein Bit vom Wagenrücklauf unterschied und daher aus dem Wagenrücklauf STRG-M wurde.
Hier ist die beste Aufnahme, die ich von einer ASR33-Tastatur finden kann. Wie Sie sehen, werden die Namen der Steuerzeichen in Kleinbuchstaben auf die entsprechenden Buchstaben gedruckt.
Bild von Marcin Wichary, Benutzer: AlanM1 (Abgeleitet (beschnitten) aus Datei: ASR-33 2.jpg ) [ CC BY 2.0 ], über Wikimedia Commons
Auf der M-Taste befindet sich keine Notation, da es eine dedizierte "RETURN" -Taste gibt, sodass STRG-M redundant ist.
quelle
Das Caret (^) ist nur eine Abkürzung zum Schreiben. Halten Sie die Strg-Taste gedrückt.
In guten alten Zeiten konnte man diese Codes (siehe oben) direkt eingeben, Strg + G (^ G) würde das Terminal "ding" machen
Wenn Sie in Vim einen CR hinzufügen möchten, verwenden Sie die Tastenkombination Strg + M usw. tab = Strg + I
quelle
Notwendigkeit einer visuellen Darstellung von per Definition nicht druckbaren Zeichen.
Jemand in den frühen 1970ern (oder vielleicht früher) (ich erinnere mich, dass ich es auf CP / M gesehen habe, und jemand anderes hat TOPS bereits erwähnt) hat entschieden, dass "Caret plus Buchstabe" das Symbol für die 26 nicht druckbaren ASCII-Steuerzeichen mit Werten ist 1 bis 26. Der Wert 0 wird / wurde als ^ @ und der Wert 127 als ^? Ausgegeben.
quelle
Wo es dokumentiert ist, listet diese Seite alle Steuerzeichen auf und gibt an, wie sie mit der Steuertaste eingegeben / dargestellt werden sollen (obwohl die erste, ASCII-Zeichen 0, keine Steuertastendarstellung hat), und es gibt nichts für Zeichen 127. Und Es bietet Quellen am unteren Rand
https://www.cs.tut.fi/~jkorpela/chars/c0.html
Angesichts der Tatsache, dass es 33 Steuerzeichen gibt (ASCII-Zeichen 0-31, also 32 Zeichen, + Zeichen 127, also 33 Zeichen), könnte man sich fragen, wie sie alle dargestellt würden, da das Alphabet nur 26 Buchstaben enthält. Nun, es verwendet Strg-A für ASCII-Zeichen 1, Strg-Z für ASCII-Zeichen 26 und dort, wenn es Strg-Z erreicht, verwendet es
[
\
]
^
_
Es listet Strg-Z als SUB auf, obwohl es in DOS und der Eingabeaufforderung cmd EOF ist, und als Techie-Benutzer verwenden Sie es, wenn Sie tun,
copy con a.a
woa.a
sich Ihre Datei befindet. Du gibst den Text ein und beendest ihn mit Strg-Z, was komischerweise keinen EOF-Marker eingibt. Sagt CMD jedoch, dass dies das Ende der Datei ist, sodass CMD sie schreibt.Diese cs.tut.fi-Webseite gibt dies als Quelle an:
http://www.wps.com/texts/codes/X3.4-1963/index.html
Aber es ist ein defekter Link, aber auf archive.org verfügbar. Es ist in Form von JPGs
Amerikanischer Standardcode für Informationsaustausch
ASA-Standard X3.4-1963
https://web.archive.org/web/20010430085116/http://www.wps.com/texts/codes/X3.4-1963/index.html
quelle
^I
für einen Tab in der Standard-Bash tun : Geben Sie einls ~/^I^I
und Sie sollten alle Ordner in Ihrem Home-Verzeichnis sehen.ControlIn dieser Tabelle sehen Sie alle nichtpritablen ASCII-Zeichen, die zugeordnet sind .
quelle