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

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


当前回答

这对我来说很简单

dos2unix   filename

其他回答

:g/^M/s// /g

如果你用Shift+6 Caps+M输入^M,它不会接受。

你需要输入ctrl+v ctrl+m。

命令

:%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

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

在Linux和Mac OS上,以下工作,

:%s/^V^M/^V^M/g

其中^V^M意味着输入Ctrl+V,然后Ctrl+M。

注意:在Windows上,你可能想使用^Q而不是^V,因为默认情况下^V被映射为粘贴文本。

使用以下命令之一:

:%s/\r//g

Or

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

比如: : % s / \ r / / g 这招对我很管用。

它的作用是清除所有行的末尾,去掉^M,就是这样。