解決pydiction在(後無法補全的問題

這兩天因爲在(後無法使用pydiction的補全着急上火,找了一大堆的文章都沒有結果,因爲對vim的腳本和內置對象基本不懂所以只能瞎貓碰死耗子一點點試驗,好在還是解決了

將python_pydiction.vim文件中110行最後的'('刪除以後,再寫下面的代碼

s = socket.socket(socket.AF<tab>

就能出現AF_INET等一堆提示了,不過在使用了AutoComplPop插件的時候你寫到socket.的時候提示的是vim自己的omni的東西

 

在網上給出的配置都會有這行autocmd FileType python set complete+=k$VIM/tools/pydiction-1.2/complete-dict iskeyword+=.,( 我試驗的時候加了不但沒有任何效果,同時還會讓AutoComplePop插件是去作用,所以只要按照官網上寫的加入這句

let g:pydiction_location='E:/Program Files/Vim/vimfiles/ftplugin/pydiction/complete-dict就夠了。

 

最後說一點如果你使用了AutoComplPop插件時在寫到s = socket.socket(socket.AF時就會報錯“Unknown function: GetSnipsInCurrentScope”查詢AutoComplPop的官網裏面有一段說明就是你要下載snipMate插件,並且在plugin/snipMate.vim中加如下一段:

fun! GetSnipsInCurrentScope() 

    let snips = {} 

    for scope in [bufnr('%')] + split(&ft, '/.') + ['_'] 

      call extend(snips, get(s:snippets, scope, {}), 'keep') 

      call extend(snips, get(s:multi_snips, scope, {}), 'keep') 

    endfor 

    return snips

endf

 

這樣就不會報錯了,我理解是當你輸入socket.AF的時候AutoComplPop會去查找omni的智能提示沒有找到又去找snip的東西,所以要加入這個函數定義。

發佈了67 篇原創文章 · 獲贊 8 · 訪問量 22萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章