如何删除 vi 中的回车符

如何删除 vi 中的回车符

我有一个文件由于末尾有一个回车符 (0x0D) 而失败。它最初是回车符/换行符组合 (0x0D, 0x0A)。我试过:

  • 在 INSERT 模式下删除它(删除最后一个打印字符并保留回车符)
  • %s/\r//E486: Pattern not found: \r
  • %s/^M//(Ctrl+V、Ctrl+M 获取^M)(E486: Pattern not found: ^M
  • J与下一行连接(似乎对最后一行没有任何作用)

它们都保留回车符。

我怎样才能从内部摆脱这个角色vi(不是vim)?

编辑

现在,每当我保存文件时,它似乎都会添加一个换行符 (0x0A)。因此,0x0D 消失了,但我的文件末尾仍有一个无效字符。

我尝试添加两个空白行,看看它是否会添加 0x0A 或 0x0D、0x0A(我使用 Windows 中的 PuTTY),结果它添加了两个 0x0A 字符,总共三个。

如果有三行,难道您只需要两个行分隔符吗?

  • %s/\n//(没有错误,但没有删除字符)

答案1

我终于在别处找到了答案:

:set noendofline binary

保存文件时删除最后的新行。

相关内容