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


当前回答

假设您的文本文件是- file.txt,然后运行这个命令-

dos2unix file.txt 

它将文本文件从dos格式转换为unix格式。

其他回答

Unix使用0xA作为换行符。Windows使用两个字符的组合:0xD 0xA。0xD是回车符。^M恰好是vim显示0xD的方式(0x0D = 13, M是英语字母表中的第13个字母)。

您可以通过运行以下命令删除所有^M字符:

:%s/^M//g

其中^M是通过按住Ctrl并输入v + M,然后释放Ctrl来输入的。有时缩写为^V^M,但请注意,您必须按照上一句中描述的方式输入,而不是逐字输入。

这个表达式将把所有出现的^M替换为空字符串(即无)。我用这个来去掉从Windows复制到Unix (Solaris, Linux, OSX)的文件中的^M。

你可以在vim中使用

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

其中^是控制字符。

假设您的文本文件是- file.txt,然后运行这个命令-

dos2unix file.txt 

它将文本文件从dos格式转换为unix格式。

%s/\^M//至少这对我有用。

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

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