vi中的^@、^I和$是什么意思?

Sea*_*ene 5 java vim vi context

当我尝试在 MapReduce(使用 Java)中使用 Context.write(k,v) 将数据写入文件时,我在文件中找到以下内容(用 vi 打开,有 :set list):

^@R^@u^@n^@^I1$
^@a^@c^@c^@e^@s^@s^@^I1$
^@d^@e^@f^@a^@u^@l^@t^@ 2$
^@o^@u^@t^@^I2$
^@p^@r^@o^@j^@e^@c^@t^@^I1$
^@t^@a^@s^@k^@^I1$
^@w^@i^@n^@d^@o^@w^@s^@^I1$
^@y^@o^@u^@r^@^I1$
Run Code Online (Sandbox Code Playgroud)

有什么意义^@ ^I$?是否^I意味\t?我知道这$意味着该行的结尾,但这是否意味着 Enter 键,就像\n? 如果是这样,vi 中的 '$' 和 '^M' 有什么区别?

rom*_*inl 5

$:set list是选项默认值显示的行结束符listchar^I是制表符。

^@null角色。

由于某些奇怪的原因,文件中的每个有意义的字符都以null除数字和(可能)空格之外的字符开头。

这不是 Vi(m) 问题:检查该方法的文档,看看是否有办法在没有这些nulls 的情况下输出数据。