更新了mccvim,现在无法获取$ HOME / .vimrc

时间:2017-10-23 00:58:36

标签: vim macvim

:version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Oct 21 2017 01:21:26)
MacOS X (unix) version
Included patches: 1-1207

我的.vimrc有 :nmap ,s :source ~/.vimrc我刚刚安装了mccvim后就尝试了,并且遇到了这些错误:

Error detected while processing /Users/jk/.vimrc:
line   18:
E15: Invalid expression: 0^M
line   20:
E15: Invalid expression: has("gui_running") && has("menu")^M
line   99:
E15: Invalid expression: 0^M
line  101:
E15: Invalid expression: has("gui_running") && has("menu")^M
line  203:
E15: Invalid expression: 0^M
line  205:
E15: Invalid expression: has("gui_running") && has("menu")^M

我根本没有在.vimrc中找到'0 ^ M'。

在更新之前一切都很好;发生了什么事?

1 个答案:

答案 0 :(得分:2)

类似Unix的系统(包括OSX)和Windows对“行尾”的外观有不同的约定。 Unix使用LF(ASCII 0A,也表示为^J); Windows使用CRLF(ASCII 0D0A,也表示为^M^J

Vim可以使用这两种文件,具体取决于fileformatsffs)设置。 set ffs=unix,dos会让Vim尝试猜测文件的格式,并相应地设置fileformatff)。但是,如果ffs设置为unix,则Vim不会尝试猜测,ff设置为unix;在此设置下,如果文件是为Windows保存的(即具有CRLF行结尾),则LF将被解释为换行符,CR将显示为^M。 Vimscript不知道如何处理^M,并抱怨。

要将文件转换为Unix格式(建议的操作,因为您的文件对于您正在使用的操作系统来说是外来的),请运行以下命令:

:e ++ff=dos .vimrc
:setl ff=unix
:w