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

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


当前回答

我用sed做了这个:

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

其他回答

^M是由Ctrl+V和M检索的

s/^M//g

这是唯一对我有效的方法:

: ff + + =

可以在http://vim.wikia.com/wiki/File_format找到它

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

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

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

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

命令

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

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

就我而言,

上面没有工作,我有一个CSV文件从我的mac复制到Linux机器,我使用了所有上述命令,但没有帮助,只有下面一个

tr "\015" "\n" < inputfile > outputfile

我有一个文件,其中^M个字符被夹在行之间,如下所示

Audi,A4,35 TFSi Premium,,CAAUA4TP^MB01BNKT6TG,TRO_WBFB_500,Trico,CARS,Audi,A4,35 TFSi Premium,,CAAUA4TP^MB01BNKTG0A,TRO_WB_T500,Trico,