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

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


当前回答

如果文件是在windows上创建的,请使用dos2unix实用程序。 如果文件是在mac上创建的,请使用mac2unix实用程序:)

其他回答

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

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

这招对我很管用:

:% s/\r\n/\r

命令

:%s/<Ctrl-V><Ctrl-M>/\r/g

其中<Ctrl-V><Ctrl-M>表示输入Ctrl+V然后Ctrl+M。

解释

:%s

替换,% =所有行

<Ctrl-V><Ctrl-M>

^M个字符(Ctrl- v是一种Vim方式来书写Ctrl ^字符,Ctrl-M将M写在正则表达式之后,结果是^M个特殊字符)

/\r/

带新线(\r)

g

并且全局执行(而不仅仅是行上的第一个事件)。

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

在vim中,查看文件格式- DOS或Unix:

:设置文件类型= unix

:设置文件格式=Unix

文件将被写回,没有回车符(CR, ^M)。