Vim在每一行结束时显示^M。
我如何用在Vim中打开的文件中的普通换行符替换它?
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)。