2011-01-22 61 views
1

我正在寫一個小的Python腳本來學習VIM基礎知識(我是VIM的初學者)。 我已經配置了VIM來處理omnicompletion,它確實如此。 例如,如果我寫str。然後按ctr + x,ctr + o它表示我所有的字符串方法。 但是在我的代碼我有這樣的事情:Vim和python:上下文無關的語言方法的自動完成

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

我想VIM打字line.rpart後,就能自動rpartition方法名。我不指望它知道行對象類型,但我希望VIM提出一個基於python庫熟人的不知道上下文的完成列表。 例如,如果使用Eclipse我試圖完成

anObject.rpart 

它表明我即使它有無關anObject的rpartition方法!

有沒有可能讓它與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 
+1

使用`for line in file`。 `.readlines()`jsut不需要地將整個文件一次性地寫入內存。 – delnan 2011-01-22 17:41:40

回答

1

你一定要看看PySmell可以安裝Vim的輕鬆。它基於給定項目的靜態分析生成完成菜單。它還可以根據它爲外部庫(如Python標準庫或Django Lib)生成的標籤生成完成建議。

我對Vims Python omnicimpletion感到滿意,但自從我切換到PySmell後,我再也沒有回頭。

+0

感謝您的回覆。如果我明白,pySmell提供了什麼omnicompletion給出,加上額外的功能? – 2011-01-23 11:25:44

2

說真的,用Jedi

它比所有其他自動補全都好得多。

願力量與你同在!