¿Por qué se ^M
utiliza para representar un retorno de carro en VIM y otros contextos?
Mi conjetura es que M
es la 13a letra del alfabeto latino y un retorno de carro es \x0D
o decimal 13
. ¿Es esta la razón? ¿Esta representación está documentada en alguna parte?
Noto que Tab está representado por ^I
, que es la novena letra del alfabeto latino. Por el contrario, Tab es \x09
o decimal 9
, lo que apoya mi teoría indicada anteriormente. Sin embargo, ¿dónde podría documentarse esto como un hecho?
terminal
encoding
special-characters
dotancohen
fuente
fuente
^H
elimina un carácter o permite la sobreimpresión (n^H~
como una forma obsoleta de producir ñ) o cualquier otro uso real del carácter de control está separado de la notación de intercalación.Respuestas:
Creo que lo que OP estaba preguntando realmente se llama notación Caret .
La lista completa de caracteres de control ASCII junto con la notación de intercalación se puede encontrar aquí
Con respecto a vim y otros editores de texto: normalmente solo verá ^ M si abre un archivo de texto con formato de Windows (CRLF) en un editor que espera terminaciones de línea de Linux (LF). El 0x0A se representa como un salto de línea, el 0x0D justo antes de imprimirse como ^ M. La mayoría de las veces, la configuración predeterminada del editor incluye "reconocer automáticamente los finales de línea".
fuente
^A
es0x41 xor 0x40
, o0x01
y^?
es0x3F xor 0x40
, o0x7F
.<---
clave (también, confusamente, llamado retroceso) en terminales tipo VT100.Esa es exactamente la razón.
ASCII define los caracteres 0-31 como códigos de control sin impresión. Aquí hay un extracto de la
ascii(7)
página del manual de un sistema Linux aleatorio (man ascii
), incluido CR (13):Convencionalmente, estos caracteres se generan con Controlla letra correspondiente al carácter requerido. Los teletipos y los primeros teclados terminales tenían 'BELL' escrito encima de la Gtecla por este motivo.
El documento de estándares que definió ASCII es ASA X3.4-1963 , que fue publicado por la American Standards Association en 1963. No puedo encontrar el documento original en su sitio web, pero este extracto del documento original muestra la tabla de caracteres, que incluye Los códigos de control anteriores.
fuente
^M
es la abreviatura de Control-M. En el terminal, debe presionar la tecla Control junto con la tecla M para enviar el ASCII kode 0x0D, también conocido como retorno de carro.La notación se remonta a los primeros teletipos ASCII (ca 1963). Había una tecla CTRL que alternaba el bit 0x40 para que CTRL-M (retorno de carro) fuera 0D en lugar de 4D, CTRL-G (campana) sería 07 en lugar de 47, CTRL-L (avance de formulario) sería 0C en su lugar de 4C.
No había un "diseño" en la asignación de letras particulares a funciones particulares, era solo casualidad que, cuando el polvo se resolvió de asignar códigos ASCII, la tecla M era un poco diferente del retorno de carro y, por lo tanto, el retorno de carro se convirtió en CTRL-M.
Aquí está la mejor toma que puedo encontrar de un teclado ASR33. Como puede ver, los nombres de los caracteres de control están impresos en minúsculas en las teclas alfa correspondientes.
Imagen de Marcin Wichary, usuario: AlanM1 (derivado (recortado) del archivo: ASR-33 2.jpg ) [ CC BY 2.0 ], a través de Wikimedia Commons
La tecla M no tiene una notación porque hay una tecla dedicada "RETORNO", por lo que CTRL-M es redundante.
fuente
El cursor (^) es solo una abreviatura para escribir, mantenga presionada la tecla Control - CTRL.
En los viejos tiempos, podía escribir estos códigos (ver arriba) directamente, la tecla Ctrl + G (^ G) haría que el terminal se "ding"
Cuando desee agregar un CR en Vim, use la tecla Ctrl + M, etc., pestaña = Ctrl + I
fuente
La necesidad de alguna forma visual de mostrar lo que son, por definición, caracteres no imprimibles.
Entonces, alguien a principios de la década de 1970 (o tal vez antes) (recuerdo haberlo visto en CP / M, y alguien más ya ha mencionado TOPS) decidió que "letra caret plus" sería el símbolo de los 26 caracteres de control ASCII no imprimibles con valores 1 a 26. El valor 0 se imprimió como ^ @ y el valor 127 como ^ ?.
fuente
Donde está documentado, bueno, esta página enumera cada carácter de control, con cómo ingresarlo / representarlo con la tecla de control (aunque el primero, el carácter ascii 0, no tiene representación de clave de control), y no tiene nada para el carácter 127. Y proporciona fuentes en la parte inferior
https://www.cs.tut.fi/~jkorpela/chars/c0.html
Uno podría preguntarse, dado que hay 33 caracteres de control (caracteres ASCII 0-31 por lo que 32 caracteres, + carácter 127. por lo tanto, = 33 caracteres) Cómo se representarían todos ya que solo hay 26 letras en el alfabeto. Bueno, usa Ctrl-A para Ascii carácter 1, Ctrl-Z para ascii carácter 26, y allí una vez que llega a Ctrl-Z, usa
[
\
]
^
_
Enumera Ctrl-Z como SUB, aunque en DOS y el indicador de cmd es EOF, y como usuario técnico lo usa cuando hace
copy con a.a
dóndea.a
está su archivo. Ingresas el texto y lo terminas con Ctrl-Z, que curiosamente no ingresa un marcador EOF. Pero le dice a CMD que ese es el final del archivo, por lo que CMD lo escribe.Esa página web cs.tut.fi proporciona esto como fuente
http://www.wps.com/texts/codes/X3.4-1963/index.html
pero es un enlace roto, pero disponible en archive.org está en forma de JPG
Código estándar americano para el intercambio de información
ASA estándar X3.4-1963
https://web.archive.org/web/20010430085116/http://www.wps.com/texts/codes/X3.4-1963/index.html
fuente
^I
para una pestaña en bash: type estándarls ~/^I^I
y debería ver todas las carpetas en su directorio de inicio.Puede ver todas las Controlasignaciones de caracteres ASCII no rentables en esta tabla.
fuente