无法获得jedi-vim插件

时间:2014-02-07 13:14:49

标签: vim jedi-vim python-jedi

我尝试使用jedi-vim插件进行Python自动完成,但我无法让它工作。

我有Vim 7.3,这就是我所做的:

1-克隆

中的代码
git clone http://github.com/davidhalter/jedi-vim path/to/bundles/jedi-vim

2-复制jedi-vim/plugin/jedi.vim~/.vim/plugin/

3-复制jedi-vim/doc/jedi-vim.txt~/.vim/doc/

现在当我打开vim时,进入插入模式并输入

import wave
wave.

没有任何反应,虽然文档指定Autocompletion is also triggered by typing a period in insert mode,如果我尝试<Ctrl-Space>,我会收到以下错误

E29: No inserted text yet
Press ENTER or type command to continue

我检查了:map,似乎未使用<Ctrl-Space>

n  [m          *@:call <SNR>21_Python_jump('?^\s*\(class\|def\)')<CR>
n  [[          *@:call <SNR>21_Python_jump('?^\(class\|def\)')<CR>
n  ]m          *@:call <SNR>21_Python_jump('/^\s*\(class\|def\)')<CR>
n  ]]          *@:call <SNR>21_Python_jump('/^\(class\|def\)')<CR>
n  gx            <Plug>NetrwBrowseX
n  <Plug>NetrwBrowseX * :call netrw#NetrwBrowseX(expand("<cWORD>"),0)<CR>

由于我使用<Ctrl-Space>收到错误,我猜它必须做点什么,对吧?为什么我无法通过:map看到它?

我错过了什么?

修改

:输出scriptnames

  1: /usr/share/vim/vimrc
  2: /usr/share/vim/vim73/debian.vim
  3: /usr/share/vim/vim73/syntax/syntax.vim
  4: /usr/share/vim/vim73/syntax/synload.vim
  5: /usr/share/vim/vim73/syntax/syncolor.vim
  6: /usr/share/vim/vim73/filetype.vim
  7: ~/.vimrc
  8: ~/.vim/plugin/jedi.vim
  9: /usr/share/vim/vim73/ftplugin.vim
 10: /usr/share/vim/vim73/plugin/getscriptPlugin.vim
 11: /usr/share/vim/vim73/plugin/gzip.vim
 12: /usr/share/vim/vim73/plugin/matchparen.vim
 13: /usr/share/vim/vim73/plugin/netrwPlugin.vim
 14: /usr/share/vim/vim73/plugin/rrhelper.vim
 15: /usr/share/vim/vim73/plugin/spellfile.vim
 16: /usr/share/vim/vim73/plugin/tarPlugin.vim
 17: /usr/share/vim/vim73/plugin/tohtml.vim
 18: /usr/share/vim/vim73/plugin/vimballPlugin.vim
 19: /usr/share/vim/vim73/plugin/zipPlugin.vim
 20: /usr/share/vim/vim73/syntax/vim.vim
 21: /usr/share/vim/vim73/syntax/python.vim
 22: /usr/share/vim/vim73/ftplugin/vim.vim

编辑2

我按照doc中所述,使用vim-jedi将Vim更新为7.4并安装了pathogen

1-安装jedi 2-安装病原体 3-在我的execute pathogen#infect()中添加~/.vimrc 4-克隆~/.vim/bundle/

中的git存储库

我创建了一个新文件,但仍然没有自动完成功能。例如:

import numpy as np
np.
插入模式下的

和control + space返回:

-- Omni completion (^O^N^P) Pattern not found

是否有任何omni completion插件存在冲突?我还没有安装这样的插件......

我的~/.vimrc文件还有其他内容吗?

5 个答案:

答案 0 :(得分:5)

这是Jedi与病原体的基本安装。

  1. 安装病原体

    mkdir -p ~/.vim/autoload ~/.vim/bundle && \
    curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
    
  2. 如果您有.vimrc文件,请配置~/.vimrc
    将以下行添加到其中

    execute pathogen#infect()
    

    其他:在您的主文件夹中创建一个名为.vimrc的空白文件,并为其添加以下行。

    execute pathogen#infect()
    syntax on
    filetype plugin indent on
    
  3. 安装Jedi。

    cd ~/.vim/bundle/ && git clone --recursive https://github.com/davidhalter/jedi-vim.git
    
  4. 享受!

    enter image description here

答案 1 :(得分:4)

如果你有

import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlPage;

public class Test {

public static void main(String[] args) 
{

    String url = "https://www.samsclub.com/sams/account/signin/login.jsp";

    try (final WebClient wc  = new WebClient())

    {             
        wc.getCookieManager().setCookiesEnabled(true);
        wc.getOptions().setUseInsecureSSL(true);
        wc.getOptions().setJavaScriptEnabled(false);
        wc.getOptions().setThrowExceptionOnScriptError(false);
        wc.getOptions().setThrowExceptionOnFailingStatusCode(false);
        wc.getOptions().setCssEnabled(false);
        //wc.getOptions().setRedirectEnabled(true);
        //wc.getOptions().setTimeout(0);
        final HtmlPage page = wc.getPage(url);
        System.out.println(page.asText());
    }
    catch (Exception e) {
        e.printStackTrace();
    }
}
}
<。>在.vimrc文件中,jedi将无法运行。

答案 2 :(得分:4)

由于要使用的python版本与被调用的python版本不匹配,所以我也遇到了类似的错误。

确保jedi使用的是预期的python版本。例如。加 let g:jedi#force_py_version = 3到您的.vimrc

答案 3 :(得分:0)

我认为问题是你的vim版本太低了,我建议你更新到vim 7.4并确保它已经打开了python函数,如果你想要自动完成功能,我建议你可以尝试You complete Me,它功能更强大,需要Vim 7.3.584 +,现在vim 7.4出来了,很容易安装,你可以用这种方式安装,

#!/bin/bash  
MyInstallDir="/root/MyVim74Install/"  
cd ~  
mkdir MyVim74Install  
if [ -d $MyInstallDir ]; then  
  echo "create MyInstallDir success"  
else  
  echo "create MyInstallDir Error"  
 fi  
cd $MyInstallDir  
pwd  

wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.9.tar.gz  
tar -zxvf ncurses-5.9.tar.gz  
cd ncurses-5.9  
./configure  
make  
make install  
make clean  

cd ~  
cd $MyInstallDir  
wget http://www.cmake.org/files/v2.8/cmake-2.8.12.2.tar.gz
tar xzvf cmake-2.8.7.tar.gz   
cd cmake-2.8.7 
./bootstrap   
make
make install

wget ftp://ftp.vim.org/pub/vim/unix/vim-7.4.tar.bz2  
tar -jxvf vim-7.4.tar.bz2  
cd vim74 ./configure --enable-gui=gtk2 --enable-cscope --enable-multibyte --enable-xim   --enable-fontset \
--with-features=huge --enable-pythoninterp=yes --with-python-config-dir=/usr/lib/python2.7/config
make 
make install
make clean 

git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle 
apt-get install gcc  
apt-get install g++ 
wget http://prdownloads.sourceforge.net/ctags/ctags-5.6.tar.gz  
tar -zxvf ctags-5.6.tar.gz  
cd ctags-5.6  
./configure &&make &&make install  
ctags -R

答案 4 :(得分:-3)

我使用pathogen安装了jedi-vim,现在可以使用了。

编辑:回复以下评论:我使用病原体重新安装jedi-vim,而不是从源代码安装它。这解决了我的问题,所以我认为这是一个答案。