考虑到两个系统具有相同的vim配置,可能导致Vim在一台机器上抛出错误而在另一台机器上抛出错误的原因是什么?
我有两台Mac OS X Lion机器都运行操作系统附带的默认vim二进制文件。
我将.vimrc和.vim目录保存在git仓库中。但是,在其中一台计算机上启动vim会引发错误:
Error detected while processing function <SNR>41_CreateMaps..<SNR>41_DefineVariables..AutoClose#DefaultPairs..AutoClose#ParsePairs:
line 18:
AutoClose: Bad pair string - a pair longer then two character
line 19:
E121: Undefined variable: a:sring
E15: Invalid expression: " `- String: " . a:sring
line 20:
`- Pair: «» Pair len: 4
我使用Vundle插件整理插件。该错误似乎是由AutoClose插件引起的。
为了紧缩,我删除了我的主目录中的vim目录和所有.vim文件,然后从repo中获取了所有内容并重新安装了插件,但错误仍然存在。
我应该补充一点,启动MacVim时没有问题,只有终端中的vim。
由于vim预装了Mac OS X Lion,而我的另一台机器(运行相同版本的Mac OS)在使用相同的设置时不会产生这些错误,我对于在哪里看起来一无所知..
如果它有任何区别,两台机器都安装了MacVim,但错误只显示在其中一台机器上,并且仅在从命令行启动vim时显示。
答案 0 :(得分:4)
这可能是因为该文件采用与VIM预期不同的编码(latin1与UTF-8)。
如果你把scriptencoding utf-8
放在你的.vimrc的顶部(假设你的vimrc实际上是用UTF-8编码的,如果用Latin1编码的话,使用ISO-8859-1),那么从那时起的所有内容都应该是正确认可。
要查看有关此功能的更多文档,请在vim中输入:help scriptencoding
。
(来源:http://vim.wikia.com/wiki/Converting_LANG_to_UTF-8和vim手册)