更新了 mccvim,现在无法获取 $HOME/.vimrc
updated mccvim, now cannot source $HOME/.vimrc
: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'。
更新前一切正常;发生什么事了?
类 Unix 系统(包括 OSX)和 Windows 对于 "end of line" 应该是什么样子有不同的约定。 Unix使用LF(ASCII0A
,也表示为^J
); Windows 使用 CRLF(ASCII 0D0A
,也表示为 ^M^J
。
Vim 可以使用这两种文件,具体取决于其 fileformats
(ffs
) 设置。 set ffs=unix,dos
将使 Vim 尝试猜测文件的格式,并相应地设置 fileformat
(ff
)。但是,如果 ffs
设置为 unix
,则 Vim 不会尝试猜测,ff
设置为 unix
;在此设置下,如果文件保存为 Windows(即具有 CRLF 行结尾),LF 将被解释为换行符,而 CR 将显示为 ^M
。 Vim脚本不知道如何处理 ^M
,并抱怨。
要将您的文件转换为 Unix 格式(推荐操作,因为您的文件对于您正在使用的操作系统来说是陌生的),运行这些命令:
:e ++ff=dos .vimrc
:setl ff=unix
:w
: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'。
更新前一切正常;发生什么事了?
类 Unix 系统(包括 OSX)和 Windows 对于 "end of line" 应该是什么样子有不同的约定。 Unix使用LF(ASCII0A
,也表示为^J
); Windows 使用 CRLF(ASCII 0D0A
,也表示为 ^M^J
。
Vim 可以使用这两种文件,具体取决于其 fileformats
(ffs
) 设置。 set ffs=unix,dos
将使 Vim 尝试猜测文件的格式,并相应地设置 fileformat
(ff
)。但是,如果 ffs
设置为 unix
,则 Vim 不会尝试猜测,ff
设置为 unix
;在此设置下,如果文件保存为 Windows(即具有 CRLF 行结尾),LF 将被解释为换行符,而 CR 将显示为 ^M
。 Vim脚本不知道如何处理 ^M
,并抱怨。
要将您的文件转换为 Unix 格式(推荐操作,因为您的文件对于您正在使用的操作系统来说是陌生的),运行这些命令:
:e ++ff=dos .vimrc
:setl ff=unix
:w