9

我正在尝试使用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

我错过了什么?

编辑

:脚本名称

  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

我将 Vim 更新到 7.4 并按照文档vim-jedi中的说明进行安装:pathogen

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

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

import numpy as np
np.

插入模式下的 control+space 返回:

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

有没有omni completion冲突的插件?我还没有安装这样的插件...

我的~/.vimrc档案中还应该有其他内容吗?

4

5 回答 5

17

这是 Jedi 与 Pathogen 的基本安装。

  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. 安装绝地。

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

    在此处输入图像描述

于 2017-02-12T20:57:27.683 回答
6

如果你有

set paste

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

于 2017-01-10T17:28:00.957 回答
6

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

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

于 2018-12-07T12:18:12.867 回答
0

我觉得问题是你的vim版本太低了,建议你更新到vim 7.4并确保它已经打开了python功能,如果你想要自动完成功能,我建议你可以试试你完成我,它更强大,它需要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
于 2014-02-20T14:28:08.947 回答
-4

我安装jedi-vim病原体,它现在可以工作了。

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

于 2014-03-03T04:53:06.107 回答