我正在尝试使用Vim插件YouCompleteme,直到我安装了Anaconda的Python发行版。
相关信息:
:Vim中的YcmDebugInfo返回 'E858:Eval没有返回有效的Python对象。'
在我的vimrc中我有:
Bundle 'Valloric/YouCompleteMe'
let g:ycm_auto_trigger = 1
let g:ycm_path_to_python_interpreter = '/Users/briantoomey/anaconda/bin/python'
let g:ycm_filetype_blacklist = {}
在github上探查其他人的vimrc后,我也试过了
let g:ycm_path_to_python_interpreter = '/usr/bin/python'
let g:ycm_path_to_python_interpreter = '/usr/bin/python2'
vim中返回的错误都与
有关youcompleteme#Enable
在bash中,
$ which python
产量
$ /Users/briantoomey/anaconda/bin/python
和 $ python --version
产量
$ Python 2.7.6 :: Anaconda 1.9.0 (x86_64)
有什么想法吗?
答案 0 :(得分:2)
我和@Andy_Haden的情况相同,并且在chrischoy上发表了关于github issue 8(https://github.com/Valloric/YouCompleteMe/issues/8)的评论:
“”” 对于anaconda用户,
在编译YCM并重命名为正常时,暂时将/ path / to / anaconda / bin / python-config中的python-config文件更改为python-config.tmp。它会做到这一点。 “”“
答案 1 :(得分:1)
操作系统:Redhat 7
错误:YouCompleteMe不可用:需要使用Python(2.7.1+或3.4+)支持的Vim编译
必须停用conda环境。
rm -rf ~/.vim ~/vim #start fresh if needed
git clone https://github.com/vim/vim.git
git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim
cd vim/src
离开CONDA环境conda deactivate
(如果需要退出基地,则多次)
注意:“ conda的完整路径”需要更改为conda安装的完整路径。在配置之前,测试路径使用ls
是正确的。
./configure --disable-nls --enable-cscope --enable-gui=no --enable-multibyte --enable-pythoninterp --enable-rubyinterp --with-features=huge --with-python-config-dir=<full path to>/anaconda3/lib/python3.6/config-3.6m-x86_64-linux-gnu --with-tlib=ncurses --without-x
make
sudo make install
激活回conda环境。 conda activate <my env>
放入.vimrc(包括NERDTree和flake8):
set nocompatible " required
filetype off " required
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')
" let Vundle manage Vundle, required
Plugin 'gmarik/Vundle.vim'
" add all your plugins here (note older versions of Vundle
" used Bundle instead of Plugin)
" ...
" All of your Plugins must be added before the following line
call vundle#end() " required
filetype plugin indent on " required
" Enable folding
set foldmethod=indent
set foldlevel=99
" Enable folding with the spacebar
nnoremap <space> za
Plugin 'tmhedberg/SimpylFold'
Plugin 'vim-scripts/indentpython.vim'
set encoding=utf-8
Bundle 'Valloric/YouCompleteMe'
let g:ycm_autoclose_preview_window_after_completion=1
map <leader>g :YcmCompleter GoToDefinitionElseDeclaration<CR>
Plugin 'vim-syntastic/syntastic'
Plugin 'nvie/vim-flake8'
let python_highlight_all=1
syntax on
Plugin 'jnurmine/Zenburn'
Plugin 'altercation/vim-colors-solarized'
Plugin 'scrooloose/nerdtree'
Plugin 'jistr/vim-nerdtree-tabs'
let NERDTreeIgnore=['\.pyc$', '\~$'] "ignore files in NERDTree
安装:
vim #enter vim
:PluginInstall #at command prompt
cd ~/.vim/bundle/YouCompleteMe
python3 ./install.py #youcompleteme requires an installation step
通过使用vim打开python文件来测试安装
答案 2 :(得分:0)
我使用anaconda,但使用conda-forge提供我的python二进制文件。到目前为止,我已经可以将它与YouCompleteMe一起使用而没有任何问题。要使用它,您只需要执行以下操作,该操作也在其网站上列出。
conda config --add channels conda-forge
conda install python
然后正常构建YouCompleteMe,它应该可以正常工作。我已经使用Python 3.6和3.7成功地做到了这一点。