Pourquoi est-il ^M
utilisé pour représenter un retour chariot dans VIM et d'autres contextes?
À mon avis, il M
s’agit de la 13ème lettre de l’alphabet latin et un retour à la ligne est \x0D
décimal 13
. Est-ce la raison? Cette représentation est-elle documentée quelque part?
Je remarque que Tab est représenté par ^I
, qui est la neuvième lettre de l'alphabet latin. Inversement, Tab est \x09
ou décimal 9
, ce qui appuie ma théorie énoncée ci-dessus. Cependant, où cela pourrait-il être documenté comme un fait?
terminal
encoding
special-characters
dotancohen
la source
la source
^H
supprimer un caractère ou de permettre la surimpression (telle qu'unen^H~
méthode obsolète de produire ñ) ou toute autre utilisation réelle du caractère de contrôle est distinct de la notation caret.Réponses:
Je pense que la question posée par OP s'appelle Caret Notation .
La liste complète des caractères de contrôle ASCII ainsi que la notation caret peuvent être trouvés ici.
En ce qui concerne vim et les autres éditeurs de texte: vous ne verrez généralement ^ M que si vous ouvrez un fichier texte au format Windows (CRLF) dans un éditeur qui attend des fins de ligne Linux. Le 0x0A est rendu sous la forme d'un saut de ligne, le 0x0D juste avant d'être imprimé en tant que ^ M. La plupart du temps, les paramètres par défaut de l'éditeur incluent "reconnaître automatiquement les fins de ligne".
la source
^A
est0x41 xor 0x40
, ou0x01
et^?
est0x3F xor 0x40
, ou0x7F
.<---
clé (appelée également backspace) sur les terminaux de type VT100.C'est exactement la raison.
ASCII définit les caractères 0 à 31 comme des codes de contrôle non imprimables. Voici un extrait de la
ascii(7)
page de manuel d’un système Linux aléatoire (man ascii
), y compris CR (13):Classiquement, ces caractères sont générés avec Controlet la lettre relative au caractère requis. GPour cette raison, 'BELL' était écrit au-dessus de la touche des télétypes et des premiers claviers de terminaux .
Le document de normes définissant ASCII est ASA X3.4-1963 , publié par l'American Standards Association en 1963. Je ne trouve pas le document d'origine sur leur site Web, mais cet extrait du document d'origine présente le tableau des caractères, y compris: les codes de contrôle ci-dessus.
la source
^M
est un raccourci pour Control-M. Sur le terminal, vous devez appuyer sur la touche Ctrl et sur la touche M pour envoyer le kode 0xII ASCII, également appelé retour chariot.La notation remonte aux premiers télétypes ASCII (vers 1963). Une clé CTRL a basculé le bit 0x40 de sorte que CTRL-M (retour chariot) soit 0D au lieu de 4D, CTRL-G (sonnerie) soit 07 au lieu de 47, CTRL-L (saut de page) soit 0C de 4C.
Il n’existait pas de "conception" dans l’attribution de lettres particulières à des fonctions particulières. Il était donc fort probable que, lorsque les codes ASCII ont été assignés, la touche M différait un peu du retour chariot et que le retour chariot devenait alors CTRL-M.
Voici le meilleur cliché que je puisse trouver d'un clavier ASR33. Comme vous pouvez le constater, les noms des caractères de contrôle sont imprimés en petites lettres sur les touches alpha correspondantes.
Image de Marcin Wichary, utilisateur: AlanM1 (dérivé (recadré) du fichier: ASR-33 2.jpg ) [ CC BY 2.0 ], via Wikimedia Commons
La touche M n'a pas de notation car il y a une touche "RETOUR" dédiée. CTRL-M est donc redondant.
la source
Le signe d'insertion (^) est juste un raccourci pour l'écriture, maintenez la touche Contrôle - CTRL enfoncée.
Dans le bon vieux temps, vous pouviez taper ces codes (voir ci-dessus) directement, les touches Ctrl + G (^ G) feraient "ding"
Lorsque vous voulez ajouter un CR dans Vim, utilisez la touche Ctrl + M, etc. tab = Ctrl + I
la source
La nécessité d'une manière visuelle d'afficher ce qui sont par définition des caractères non imprimables.
Ainsi, au début des années 1970 (ou peut-être plus tôt) (je me souviens de l'avoir vu sur CP / M, et quelqu'un d'autre a déjà mentionné TOPS), il a décidé que "caret plus letter" serait le symbole des 26 caractères de contrôle ASCII non imprimables avec des valeurs. 1 à 26. La valeur 0 est / était imprimée sous la forme ^ @ et la valeur 127 sous la forme ^ ?.
la source
Où est-il documenté, ainsi cette page répertorie chaque caractère de contrôle, avec la façon de le saisir / représenter avec la clé de contrôle (bien que le premier, le caractère ascii 0, n’a pas de représentation de la clé de contrôle), et il n’a rien pour le caractère 127. Et il fournit des sources en bas
https://www.cs.tut.fi/~jkorpela/chars/c0.html
On peut s’interroger, étant donné qu’il ya 33 caractères de contrôle (caractères ASCII de 0 à 31, donc 32 caractères, + 127 caractères, donc, = 33 caractères). Comment ils seraient tous représentés, l’alphabet ne comportant que 26 lettres. Eh bien, il utilise Ctrl-A pour le caractère Ascii 1, Ctrl-Z pour le caractère ascii 26, et une fois qu’il atteint Ctrl-Z, il utilise
[
\
]
^
_
Il répertorie Ctrl-Z en tant que SUB, bien que sous DOS et l’invite cmd il s’agisse de EOF, et en tant qu’utilisateur technique, vous l’utilisez quand vous faites
copy con a.a
oùa.a
est votre fichier. Vous entrez le texte et le terminez avec Ctrl-Z qui, curieusement, n'entre pas de marqueur EOF. Mais ne dit pas à CMD que c'est la fin du fichier, donc CMD l'écrit.Cette page Web cs.tut.fi donne ceci comme source
http://www.wps.com/texts/codes/X3.4-1963/index.html
mais c'est un lien brisé, mais disponible sur archive.org c'est sous forme de JPG
Code American Standard pour l'échange d'informations
ASA standard X3.4-1963
https://web.archive.org/web/20010430085116/http://www.wps.com/texts/codes/X3.4-1963/index.html
la source
^I
pour un onglet dans bash standard: typels ~/^I^I
et vous devriez voir tous les dossiers de votre répertoire personnel.Vous pouvez voir tous les mappages de caractères ASCII non prisables Controldans ce tableau.
la source