Vim在每一行结束时显示^M。

我如何用在Vim中打开的文件中的普通换行符替换它?


当前回答

我用sed做了这个:

Sed -i -e 's/\r/\n/g'文件名

其他回答

在VIM命令模式下:

:e ++ff=dos | setl ff=unix | up

e++ ff=dos -强制打开dos格式的文件。

Setl ff=unix -将文件转换为unix格式。

上保存文件时,仅当已修改。

首先,使用:set ff?来确定文件的格式。

我猜可能是unix,那么问题是你的文件是用fileformat=dos创建的,在行末添加“^M^J”,但用flieformat=unix读取,只从行末删除“^J”,留下“^M”。

只需在Vim命令行中输入:e++ ff=dos即可将文件格式从unix更改为dos。这应该能解决问题。如果不是,:%s/\r//g会帮助你。

这招对我很管用:

:% s/\r\n/\r

使用以下命令之一:

:%s/\r//g

Or

:%s/\r\(\n\)/\1/g

要在MacOS上使用sed,请执行以下操作:

sed -i.bak $'s/\r//' <filename>

解释:这里的$'STRING'语法属于bash shell。mac电脑不把\r当作特殊字符。通过在$ "中引用命令字符串,你告诉shell将\r替换为ANSI-C标准中指定的实际\r字符。