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


当前回答

在FreeBSD中,您可以通过输入以下命令手动清除^M:

%s/按Ctrl+V,然后按Ctrl+M,再按Ctrl+M。

其他回答

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

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

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

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

set ffs=unix,dos

如果它破坏了您的配置,并且映射中需要^M字符,您可以简单地将^M字符替换为<Enter>或甚至<C-m>(两者都输入为简单字符序列,因此分别为7和5个字符)。

这是在映射中存储特殊键码的唯一推荐的可移植方法

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

dos2unix file.txt 

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

我发现,由于我的Homebrew Mvim实例被设置为使用filetype=dos,我已经污染了几个星期的文件。在.vimrc....中进行了所需的更改