Vim的Valloric / YouCompleteMe插件

时间:2017-02-18 00:02:56

标签: vim

通过Vundle安装Valloric / YouCompleteMe插件后,当我启动vim时出现以下错误。运行./install.py脚本时没有问题。

File "<string>", line 19, in <module>
  File "/Users/simonorlovsky/.vim/bundle/YouCompleteMe/autoload/../python/ycm/setup.py", line 37, in SetUpSystemPaths
    from ycmd import server_utils as su
  File "/Users/simonorlovsky/.vim/bundle/YouCompleteMe/python/ycm/../../third_party/ycmd/ycmd/server_utils.py", line 25, in <module>
    import io
  File "/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/io.py", line 51, in <module>
    import _io
ImportError: dlopen(/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so, 2): Symbol not found: __PyCodecInfo_GetIncrementalDecoder
  Referenced from: /usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so
  Expected in: flat namespace
 in /usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so
YouCompleteMe unavailable: dlopen(/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so, 2): Symbol not found: __PyCodecInfo_GetIncrementalDecoder
  Referenced from: /usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so
  Expected in: flat namespace
 in /usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so
Press ENTER or type command to continue

我是vim插件社区的新手,所以我想知道是否有人对这个问题有什么了解。

修改

最终解决方案是重新安装macvim并在我的机器上删除brew版本的python。

感谢您的建议!

2 个答案:

答案 0 :(得分:1)

感谢您提出这个问题,我对此感到非常困惑。我有一个非常艰难的时间让这个插件工作!

所以步骤如下

解决此特定错误的关键是更新vim。

brew install macvim --with-override-system-vim

执行此操作后,关闭终端并打开新终端。检查vim的版本,现在应该是版本8,即

vim --version | grep IMproved

应该有输出:

VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Apr 20 2017 20:02:24)

请注意,在关闭终端并打开新终端之前,它仍然是旧的Mac版本。

现在删除YouCompleteMe的不完整副本:

sudo rm -rf ~/.vim/bundle/YouCompleteMe

然后打开vim并再次安装插件

:PluginInstall

它应该是成功的,并且没有在此问题中报告错误。但是,我发现当我尝试使用它时,它无法正常工作。你还没完成!您仍然需要手动安装YouCompleteMe。你可以这样做(--clang-completer是可选的,它只适用于你想要c语言语言的语义支持):

cd ~/.vim/bundle/YouCompleteMe
./install.py --clang-completer

您可能需要安装cmake来执行此操作,以防万一,这是命令:

brew install cmake

我希望这适合你!在python文件中尝试一下。如果你想查看自述文件,这是github repo: https://github.com/Valloric/YouCompleteMe

如果您有任何问题,请告诉我。

答案 1 :(得分:0)

如果YouCompleteMe安装有问题,也会发生这种情况。删除插件并再次安装它为我修好了。