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

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


当前回答

这些建议对我都不起作用,因为在使用vim和eclipse时,我设法获得了^M换行符。我怀疑我遇到了一个外部案件但为了能帮助到其他人。

:%s/.$//g

这解决了我的问题

其他回答

使用以下命令之一:

:%s/\r//g

Or

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

在windows下,尝试:%s/<C-Q><C-M>/g

这招对我很管用:

设置文件格式为unix (\n行结束) 保存文件

在vim中:

:set ff=unix
:w

这个问题有很多其他的答案,但仍然,下面的最适合我,因为我需要一个命令行解决方案:

vim -u NONE -c 'e ++ff=dos' -c 'w ++ff=unix' -c q myfile

解释:

不加载任何.vimrc文件,打开myfile 执行:e++ ff=dos命令,在dos行结束时强制重新加载整个文件。 执行命令w++ ff=unix,使用unix行结束符写入文件 vim辞职

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

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

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