Vim和python:上下文 - 不知道语言方法的自动完成

时间:2011-01-22 17:22:00

标签: python vim autocomplete omnicomplete

我正在编写一个小小的python脚本来学习VIM基础知识(我是VIM的初学者)。 我已经将VIM配置为使用omnicompletion,它确实如此。 例如,如果我写str。然后按ctr + x,ctr + o它建议我所有的字符串方法。 但是在我的代码中我有这样的东西:

for line in inFile.readlines():
    something = line.rpartition(" ")[0]

我希望VIM在输入line.rpart后自动完成rpartition方法名称。我不希望它知道行对象类型,但我希望VIM根据python库熟人提出一个不知道上下文的完成列表。 例如,如果使用eclipse我尝试完成

anObject.rpart

它建议我使用rpartition方法,即使它与anObject无关!

是否可以将其与VIM配合使用?
感谢。

我的.vimrc文件:

set showcmd
set textwidth=80
set expandtab
set smarttab
set tabstop=4
set shiftwidth=4
set softtabstop=4
set number
set autoindent
filetype indent on
filetype plugin on
autocmd BufRead,BufNewFile *.py syntax on
autocmd BufRead,BufNewFile *.py set ai
autocmd BufRead *.py set smartindent cinwords=if,elif,else,for,while,with,try,except,finally,def,class
set modeline
syntax on
" Closes the Omni-Completion tip window when a selection is
" made
autocmd CursorMovedI * if pumvisible() == 0|pclose|endif
autocmd InsertLeave * if pumvisible() == 0|pclose|endif

2 个答案:

答案 0 :(得分:2)

说真的,使用Jedi

这比其他所有自动完成功能都要好得多。

愿力量与你同在!

答案 1 :(得分:1)

你一定要看看PySmell,它可以很容易地为Vim安装。它基于给定项目的静态分析生成完成菜单。它还可以根据它为外部库(如Python标准库或Django Lib)生成的标记生成完成建议。

我对Vims Python omnicimpletion很满意,但自从我切换到PySmell后,我再也没有回头。