2016-07-16 34 views
2

我剛剛開始看Vim jedi插件,它看起來非常令人印象深刻。我使用的一些Java IDE的一個特性是能夠自動添加所需的導入。傑迪能做到嗎?例如,如果我輸入一行如是否可以用jedi-vim插入import語句?

arg1 = sys.argv[1] 

,然後調用一些絕命令,是否有可能爲插件自動在源文件的頂部插入一個import sys線(如果SYS是不是已經被進口)?

我已經看過絕地幫助,並且看不到這樣的東西 - 但是有可能我錯過了一些東西。另外,是否有另一個Vim插件可以做到這一點? (它需要對Python語法有一定程度的理解才能正確使用,這就是爲什麼我期待Jedi能夠做到這一點)。

回答

0

飛行,我已經定義了一個通用的導入功能,可以在lh-dev按需使用。我從我的C & C++套件和我的snippet engine (mu-template)中使用它。

到目前爲止,我不分析任何東西來添加缺少的import/include語句。戴夫說這個部分會很複雜。相反,我的片段知道哪些文件需要導入/包含,如果尚未導入/包含,請導入/包含它們。

這並不完美,但它是一個開始。在擴展代碼片段之後,mu-template提供了一個在文件開始處執行內容的鉤子,這就是我稱之爲lh-dev函數的地方。如果其他代碼片段引擎提供類似的掛鉤,則應該可以從您的代碼段調用lh#dev#import#add()

這裏的概念片斷爲Python證明(我很少程序Python和沒有它的許多片段):https://github.com/LucHermitte/mu-template/blob/master/after/template/python/path-exists.template