Vim Omnicomplete模式未找到(Python)
我看到说全自动补全应该是开箱即用的,但我这边不行,我在想我哪里做错了。
我编译了最新版本的vim,并且它显示有"+python":
user$ vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Feb 16 2013 11:22:56)
MacOS X (unix) version
Compiled by user@computer.local
Normal version without GUI. Features included (+) or not (-):
-arabic +autocmd -balloon_eval -browse +builtin_terms +byte_offset +cindent
-clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments
-conceal +cryptv -cscope +cursorbind +cursorshape +dialog_con +diff +digraphs
-dnd -ebcdic -emacs_tags +eval +ex_extra +extra_search -farsi +file_in_path
+find_in_path +float +folding -footer +fork() -gettext -hangul_input -iconv
+insert_expand +jumplist -keymap -langmap +libcall +linebreak +lispindent
+listcmds +localmap -lua +menu +mksession +modify_fname +mouse -mouseshape
-mouse_dec -mouse_gpm -mouse_jsbterm -mouse_netterm -mouse_sysmouse
+mouse_xterm -multi_byte +multi_lang -mzscheme +netbeans_intg -osfiletype
+path_extra -perl +persistent_undo +postscript +printer -profile +python
-python3 +quickfix +reltime -rightleft -ruby +scrollbind +signs +smartindent
-sniff +startuptime +statusline -sun_workshop +syntax +tag_binary
+tag_old_static -tag_any_white -tcl +terminfo +termresponse +textobjects +title
-toolbar +user_commands +vertsplit +virtualedit +visual +visualextra +viminfo
+vreplace +wildignore +wildmenu +windows +writebackup -X11 -xfontset -xim -xsmp
-xterm_clipboard -xterm_save
system vimrc file: "$VIM/vimrc"
user vimrc file: "$HOME/.vimrc"
user exrc file: "$HOME/.exrc"
fall-back for $VIM: "/Users/user/Software/vim/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DMACOS_X_UNIX -no-cpp-precomp -g -O2 -D_FORTIFY_SOURCE=1
Linking: gcc -L/usr/local/lib -o vim -lm -lncurses -framework Cocoa -framework Python
我把我的.vimrc文件清空,只留下:
" Automatic reloading of .vimrc
autocmd! bufwritepost .vimrc source %
filetype plugin on
而我的~/.vim/目录里只有
autoload/pythoncomplete.vim
这个是我从 http://www.vim.org/scripts/script.php?script_id=1542 下载的。
然后我运行这个命令,返回的是:
:echo &omnifunc
pythoncomplete#Complete
看起来没问题。但是每次我在下面的test.py文件里按控制键+x再按o:
#! /usr/bin/env python
import numpy
numpy.r
无论是在输入“num”还是“numpy.r”后,我得到的结果是
Omni completion (^O^N^P) Pattern not found
我的安装有问题吗?任何想法都非常感谢。谢谢。
编辑:根据TankorSmash的建议安装了python-mode后,我可以把“num”补全为“numpy”,但“numpy.r”却没有办法补全。
这是我新的.vimrc文件:
" Automatic reloading of .vimrc
autocmd! bufwritepost .vimrc source %
" Pathogen load
filetype off
call pathogen#infect()
call pathogen#helptags()
filetype plugin indent on
syntax on
还有我的.vim目录结构:
.vim
autoload
pathogen.vim
pythoncomplete.vim
bundle
python-mode
有什么想法吗?
1 个回答
2
你其实不需要任何第三方的补全脚本就能在Python中实现代码补全。
我自己也没有(我唯一的Python相关脚本是一个简单的ftplugin),但当我在输入numpy.
和numpy.arc
后按下<C-x><C-o>
时,系统给我的建议就是这些……
看起来你是在Mac OS X上,实际上你真的不应该自己编译Vim。安装最新的MacVim快照是运行Vim在Mac上最好的方法,我很确定你会得到和这台Linux机器一样的建议。
补充
我刚在我妻子的简单配置的iMac(python 2.5)上测试了同样的代码,使用的是旧版的MacVim(快照53),结果得到的建议差不多(485对比551)。