linux - VI :set list vs.猫-A

标签 linux vi cat

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

在第六章中

:set list

不显示 ^M 字符但是

cat -A

确实显示字符。

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

什么给了?

最佳答案

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

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

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

注意: fileformat 是 Vim 的一个特性,在 vi 中不可用。

关于linux - VI :set list vs.猫-A,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24617707/

相关文章:

vim - 在Vim中缩进整个文件而不保留当前光标位置

bash cat 删除字符

c - 如何将返回代码传递给 at_exit 函数

调用同一个程序实例?

linux - 基于 linux 的 USB 小工具设备的静态主机 RNDIS IP

regex - Vim:如何只搜索和替换每一行的一部分?

php - 如何在 Debian 上使用 Concrete5 解决 "Pragma: no-cache"问题?

python - 从 .vimrc 加载 vim 插件时检测到错误

linux - 合并不同文件夹中的同名文件

c - 在 cat 实现中以文本而不是二进制格式打印