我一直在。vimrc中得到^M字符,它破坏了我的 配置。


当前回答

在Unix中,使用'tr'命令可能更容易。

cat file1.txt | tr "\r" "\n" > file2.txt

其他回答

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

: ff + + =

:wq

在Unix中,使用'tr'命令可能更容易。

cat file1.txt | tr "\r" "\n" > file2.txt

这可能意味着您得到了回车(不同的操作系统使用不同的方式来表示行结束)。

使用dos2unix在vim中修复文件或设置文件格式:

set ffs=unix,dos

如果您没有故意指定不同的文件格式(例如,对于Windows文件,:e++ ff=unix),很可能目标文件的eol是混合的。

例如,如果一个文件有一些行以<CR><NL>结尾,而其他行以 <NL>结尾,文件格式被Vim读取时自动设置为unix, ^M (<CR>)将出现。 在这种情况下,文件格式(注意:有一个额外的s)发挥作用。详情见:help ffs。

你可以在vim中使用

:1,$s/^V^M//g

其中^是控制字符。