为什么^M
在VIM和其他情况下用来表示回车?
我的猜测是M
拉丁字母的第13个字母,回车符是\x0D
或小数13
。这是原因吗?此表示是否记录在任何地方?
我注意到Tab由表示^I
,这是拉丁字母的第9个字母。相反,Tab是\x09
or十进制9
,它支持我上面所述的理论。但是,这在哪里可以记录为事实?
^H
删除字符还是允许套印(例如n^H~
过时的生产ñ方式)或控制字符的其他任何实际使用都与插入符号分开。
为什么^M
在VIM和其他情况下用来表示回车?
我的猜测是M
拉丁字母的第13个字母,回车符是\x0D
或小数13
。这是原因吗?此表示是否记录在任何地方?
我注意到Tab由表示^I
,这是拉丁字母的第9个字母。相反,Tab是\x09
or十进制9
,它支持我上面所述的理论。但是,这在哪里可以记录为事实?
^H
删除字符还是允许套印(例如n^H~
过时的生产ñ方式)或控制字符的其他任何实际使用都与插入符号分开。
Answers:
我相信OP实际询问的是“ 插入符号”。
脱字符号是ASCII编码中不可打印的控制字符的一种符号。该符号由插入符号(^)和大写字母组成;该图表示具有等于字母数字值的数字值的ASCII码。例如,值为4的EOT字符表示为^ D,因为D是字母表中的第4个字母。值为0的NUL字符表示为^ @(@是A之前的ASCII字符)。值127的DEL字符通常表示为^ ?,因为ASCII'?' 在'@'之前,如果被屏蔽为7位,则-1与127相同。翻译的另一种形式是通过反转ASCII代码的第7位来找到打印的字符
ASCII控制字符和插入符号的完整列表可在此处找到
关于vim和其他文本编辑器:如果在需要Linux行尾(LF)的编辑器中打开Windows格式(CRLF)文本文件,通常只会看到^ M。0x0A呈现为换行符,0x0D紧接在其被打印为^ M之前。大多数情况下,编辑器的默认设置包括“自动识别行尾”。
^A
is 0x41 xor 0x40
或or 0x01
and ^?
is 0x3F xor 0x40
或or 0x7F
。
<---
类似VT100的终端上的按键(也称为退格键)生成的标准代码。
那正是原因。
ASCII将字符0-31定义为非打印控制代码。以下ascii(7)
是随机Linux系统(man ascii
)直至CR(13)的手册页摘录:
Oct Dec Hex Char
─────────────────────────────────────────────
000 0 00 NUL '\0'
001 1 01 SOH (start of heading)
002 2 02 STX (start of text)
003 3 03 ETX (end of text)
004 4 04 EOT (end of transmission)
005 5 05 ENQ (enquiry)
006 6 06 ACK (acknowledge)
007 7 07 BEL '\a' (bell)
010 8 08 BS '\b' (backspace)
011 9 09 HT '\t' (horizontal tab)
012 10 0A LF '\n' (new line)
013 11 0B VT '\v' (vertical tab)
014 12 0C FF '\f' (form feed)
015 13 0D CR '\r' (carriage ret)
常规上,这些字符是用Control和所需字符相关的字母生成的。因此,电传打字机和早期的终端键盘在G键上方都写有“ BELL” 。
定义ASCII的标准文档是ASA X3.4-1963,由美国标准协会于1963年发布。我在其网站上找不到原始文档,但是该原始文档的摘录显示了字符表,包括上面的控制代码。
^M
是Control-M的简写。在终端上,您可以同时按Control键和M键以发送ASCII码kode 0x0D,也称为回车符。
该符号可以追溯到最早的ASCII Teletypes(大约1963年)。有一个CTRL键可切换0x40位,以便CTRL-M(回车)将是0D而不是4D,CTRL-G(钟形)将是07而不是47,CTRL-L(换页)将是0C 4C。
在为特定功能分配特定字母时没有“设计”,只是由于分配ASCII代码而使尘埃落定时,M键与回车键略有不同,因此回车键变成了CTRL-M,这是一个机会。
这是我能找到的ASR33键盘的最佳照片。如您所见,控制字符名称以小写字母显示在相应的字母键上。
图片由Marcin Wichary提供,用户:AlanM1(从File:ASR-33 2.jpg衍生(裁剪))[ CC BY 2.0 ],通过Wikimedia Commons
M键没有标记,因为有专用的“ RETURN”键,所以CTRL-M是多余的。
插入号(^)只是编写的简写形式,按住Control键-CTRL向下即可。
在过去的好日子里,您可以直接输入这些代码(请参见上文),而Ctrl键+ G(^ G)将使终端变为“叮”
如果要在Vim中添加CR,请使用Ctrl键+ M等选项卡= Ctrl + I
它的记录位置在哪里,该页面列出了每个控制字符,以及如何使用控制键输入/表示它(尽管第一个,ASCII字符0,没有控制键表示),而对于字符127则没有任何内容。它在底部提供了源
https://www.cs.tut.fi/~jkorpela/chars/c0.html
假设存在33个控制字符(ASCII字符0-31,所以32个字符,+ 127个字符,所以,= 33个字符),怎么可能全部表示,因为字母表中只有26个字母。好吧,它对ASCII字符1使用Ctrl-A,对ASCII字符26使用Ctrl-Z,一旦到达Ctrl-Z,它就使用 [
\
]
^
_
它在DOS中将Ctrl-Z列为SUB,尽管在DOS和cmd提示符下它是EOF,并且作为技术用户,您copy con a.a
在a.a
将文件放在何处时使用它。您输入文本并用Ctrl-Z终止,这很有趣,它没有输入EOF标记。但是确实告诉CMD这是文件的末尾,因此CMD会将其写入。
该cs.tut.fi网页将其作为来源
http://www.wps.com/texts/codes/X3.4-1963/index.html
但这是一个损坏的链接,但可以在archive.org上以JPG的形式使用
美国信息交换标准代码
ASA标准X3.4-1963
https://web.archive.org/web/20010430085116/http://www.wps.com/texts/codes/X3.4-1963/index.html
^I
在标准bash中键入一个选项卡:输入ls ~/^I^I
,您应该会在主目录中看到所有文件夹。