我尝试使用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/
我创建了一个新文件,但仍然没有自动完成功能。例如:
import numpy as np
np.
插入模式下的和control + space返回:
-- Omni completion (^O^N^P) Pattern not found
是否有任何omni completion
插件存在冲突?我还没有安装这样的插件......
我的~/.vimrc
文件还有其他内容吗?
答案 0 :(得分:5)
这是Jedi与病原体的基本安装。
安装病原体
mkdir -p ~/.vim/autoload ~/.vim/bundle && \
curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
如果您有.vimrc
文件,请配置~/.vimrc
:将以下行添加到其中
execute pathogen#infect()
其他:在您的主文件夹中创建一个名为.vimrc
的空白文件,并为其添加以下行。
execute pathogen#infect()
syntax on
filetype plugin indent on
安装Jedi。
cd ~/.vim/bundle/ && git clone --recursive https://github.com/davidhalter/jedi-vim.git
答案 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,而不是从源代码安装它。这解决了我的问题,所以我认为这是一个答案。