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档案还有其他吗?
这是Jedi与Pathogen的基本安装.
安装病原体
mkdir -p ~/.vim/autoload ~/.vim/bundle && \
curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
Run Code Online (Sandbox Code Playgroud)配置.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)安装Jedi.
cd ~/.vim/bundle/ && git clone --recursive https://github.com/davidhalter/jedi-vim.git
Run Code Online (Sandbox Code Playgroud)我有一个类似的错误,因为我打算使用的python版本与被调用的版本不匹配。
确保jedi使用的是预期的python版本。例如添加
let g:jedi#force_py_version = 3到您的.vimrc