emacs 下的 Caret-At (^@) 是什么?

emacs 下的 Caret-At (^@) 是什么?

我习惯在 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

来源14.19 如何显示文本

相关内容