无法获得jedi-vim插件

jul*_*jul 7 vim python-jedi jedi-vim

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

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

1-克隆代码

git clone http://github.com/davidhalter/jedi-vim path/to/bundles/jedi-vim
Run Code Online (Sandbox Code Playgroud)

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

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

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

import wave
wave.
Run Code Online (Sandbox Code Playgroud)

没有任何反应,虽然文档指定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
Run Code Online (Sandbox Code Playgroud)

我检查过: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>
Run Code Online (Sandbox Code Playgroud)

由于我使用错误<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
Run Code Online (Sandbox Code Playgroud)

编辑2

我更新的Vim至7.4,安装vim-jedi使用pathogen如所描述的文档:

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

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

import numpy as np
np.
Run Code Online (Sandbox Code Playgroud)

和插入模式下的控件+空间返回:

-- Omni completion (^O^N^P) Pattern not found
Run Code Online (Sandbox Code Playgroud)

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

我的~/.vimrc档案还有其他吗?

All*_*ітy 6

这是Jedi与Pathogen的基本安装.

  1. 安装病原体

    mkdir -p ~/.vim/autoload ~/.vim/bundle && \
    curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
    
    Run Code Online (Sandbox Code Playgroud)
  2. 配置.vimrc
    是否有~/.vimrc文件:向其添加以下行

    execute pathogen#infect()
    
    Run Code Online (Sandbox Code Playgroud)

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

    execute pathogen#infect()
    syntax on
    filetype plugin indent on
    
    Run Code Online (Sandbox Code Playgroud)
  3. 安装Jedi.

    cd ~/.vim/bundle/ && git clone --recursive https://github.com/davidhalter/jedi-vim.git
    
    Run Code Online (Sandbox Code Playgroud)
  4. 请享用!

    在此输入图像描述


小智 5

如果你有

set paste
Run Code Online (Sandbox Code Playgroud)

在您的 .vimrc 文件中,jedi 将无法运行。


0-_*_*_-0 5

我有一个类似的错误,因为我打算使用的python版本与被调用的版本不匹配。

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


jul*_*jul -4

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

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

  • 这怎么算是一个答案呢? (2认同)