在Vim中使用python讓Opencv函數自動補全

用Vim編寫python

怎麼將Vim配置成IDE,網上已有很多相關發方法,此處給出兩個鏈接供大家參考

Vim中自動補全Python

1、jedi-vim
stackoverflow.com的提問中,看到了jedi-vim的Vim插件(https://github.com/davidhalter/jedi-vim),看介紹感覺功能比較強大,由於介紹的安裝方式爲在linux環境下的,我按照其他插件的安裝方式來安裝它,測試了一天,總是提示有問題,最後不了了之。提示:先安裝依賴jedi,在安裝jedi-vim。如果使用pip安裝,則需先安裝setuptools,再安裝pip。

2、pydiction
pydiction只用一個鍵來補全(Tab)。具體安裝方式和文檔見http://www.vim.org/scripts/script.php?script_id=850
pydiction依賴於complete-dict來完成自動補全,自帶的complete-dict已將幾乎所有的python模塊包含,所以即使你的文件中沒有import該模塊,其也可自動對相應的關鍵字進行補全。且其對於函數的補全不會顯示函數參數。

3、omni completion
vim中自帶的補全插件。其詳細中文介紹: http://blah.blogsome.com/2006/06/27/vim7_tut_oc/以及http://vim.wikia.com/wiki/Omni_completion

4、python-mode
功能比較強大的一個補全軟件,詳見https://github.com/klen/python-mode#manually

自動補全Opencv函數

由於體驗過pydiction以及omni completion,所以只介紹這兩個插件

1、pydiction
其補全依賴於complete-dict,而對於第三方的module,其提供了pydiction.py的腳本來完善。
在命令行中輸入 python pydiction.py modulename,其將自動更新原本的complete-dict。我們在opencv的安裝文件中找到 opencv\modules\python\src2文件夾,利用pydiction.py對completion-dict進行更新,將更新後的completion-dict放到  vim73\ftplugin中,並在_vimrc中配置
let g:pydiction_location = 'YourDir\Vim\vim73\ftplugin\complete-dict'

2、omni completion
其對python內建的模塊又補全功能,但需要import後,才能支持該模塊的自動補全(快捷鍵<C-x>+<C-o>)。其對當前打開的文檔內容也有自動補全的動能。(<C-p>,<C-n>,<C-e>,previous,next,end)。對於第三方的模板,可以通過Ctags來支持。
在opencv的安裝文件 opencv\modules\python\src2文件夾下,進行Ctags -R *,來生成相應的tags,將生成的tags添加到vim的配置文件_vimrc中 
set tags+=YourDir\tags
即可對opencv相應的python函數進行自動補全。(C/C++方法一樣,在相應的源文件中生成tag,或直接對整個opencv目錄生成tag即可)

pydiction與omni completion對比

1、pydiction補全無需導入模塊即可補全(關鍵字都以生成在complete-dict中,不加以區分),導致補全選項繁多,不便於選擇。而後者對模塊加以區分,須import後方可補全。
2、前者對於補全後的函數無參數說明,後者補全後函數doc string以及函數的參數都將顯示在preview中,方便編程。注意配置是加上:
filetype plugin indent on '默認爲關,將其打開
set completeopt=longest,menu,preview  'preview須加上,否則看不到doc string以及函數參數

3、前者只需要<Tab>即可補全,後者需要組合兩個快捷鍵<C-x>+<C-o>才能補全,操作繁瑣一點。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章