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

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


当前回答

我用sed做了这个:

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

其他回答

在串行控制台上,所有的vi和sed解决方案都不适合我。我不得不:

cat inputfilename | tr -d '\r' > outputfilename

在vim中,使用命令:

: % s / \ r \ n \ r / g

想要搜索和替换的地方:

\ r \ n

into

\r

/g

是全球性的

注意,这与@ContextSwitch的答案相同,但带有全局标志

另外,还有称为dos2unix和unix2dos的开源实用程序可以做这件事。在linux系统上,它们可能是默认安装的;对于Windows系统,你可以从http://www.bastet.com/等网站下载。

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

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

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

这招对我很管用:

:% s/\r\n/\r