我习惯在 Emacs 下看到 Caret-M (^M)。但在下面,我看到的是 Caret-At (^@):
该文件是通过运行加密++使用命令在 OpenBSD 上测试程序./cryptest.exe > cryptopp.txt
。奇怪的是,文件中的所有行都是用 C++ 创建的endl
。并且endl
对平台的行尾敏感,因此它会得到CR
和之类的LF
正确结果。
看起来 Caret-At (^@) 应该无处不在,或者根本不存在。
什么是 Caret-At (^@),为什么它只出现在第一行?
答案1
什么是 Caret-At (^@)?
它是一个空字符(control-@ 或 ASCII 0),emacs 显示为^@
。
为什么它只出现在第一行?
因为cryptest
此时输出它们。
大多数字符都是打印字符:当它们出现在缓冲区中时,它们会直接显示在屏幕上。打印字符包括 ASCII 数字、字母和标点符号,以及许多非 ASCII 字符。
ASCII 字符集包含非打印控制字符。其中两个字符以特殊方式显示:换行符(Unicode 代码点 U+000A)显示为开始新行,而制表符(U+0009)显示为延伸到下一个制表符停止列(通常每 8 列)的空格。每个制表符的空格数由缓冲区局部变量 tab-width 控制,该变量必须是 1 到 1000 之间的整数值(含)。请注意,缓冲区中制表符的显示方式与 TAB 作为命令的定义无关。
其他 ASCII 控制字符(其代码低于 U+0020(八进制 40,十进制 32))显示为插入符号 (
^
),后跟该字符的非控制版本,带有转义字形。例如,control+A字符 U+0001 显示为^A
。