Linux VI:集合列表与A类

Linux VI:集合列表与A类,linux,vi,cat,Linux,Vi,Cat,我有两个看起来相同的文件,但大小不同。这让我想到文件中有特殊字符,即^M 在六 不显示^M个字符,但 cat -A 没有显示字符 此外,VI仅当特殊^M字符出现在行尾时才显示它们 提供了什么?我不知道vi,但您在Vim中看到了相同的东西: 如果每一行都是分隔的,那么Vim默认设置fileformat=dos,并相应地加载文件。由于\r是行分隔符的一部分,因此它不会显示在可编辑文本中。加载文件时,Vim通过在状态栏中显示[dos]来告知发生了这种情况 如果使用:e++fileformat=UNI

我有两个看起来相同的文件,但大小不同。这让我想到文件中有特殊字符,即^M

在六

不显示^M个字符,但

cat -A
没有显示字符

此外,VI仅当特殊^M字符出现在行尾时才显示它们


提供了什么?

我不知道vi,但您在Vim中看到了相同的东西:

如果每一行都是分隔的,那么Vim默认设置
fileformat=dos
,并相应地加载文件。由于
\r
是行分隔符的一部分,因此它不会显示在可编辑文本中。加载文件时,Vim通过在状态栏中显示
[dos]
来告知发生了这种情况

如果使用
:e++fileformat=UNIX
将文件重新读取为UNIX文件,
\r
将不再被视为行分隔符,您将开始在数据中看到它们(有或没有
:set list


注意:
fileformat
是Vim的一项功能,在vi中不可用。

听起来该文件混合了unix
\n
和windows
\r\n
行结尾。如果整个文件都有windows行结尾,Vi/Vim将不会显示
^M
,但如果是混合的,则会显示它们。另请参阅,我不记得对混合文件调用
dos2unix
是否会正确地生成仅限unix的行结尾文件,但也值得一试。
cat -A