2010-09-29 11 views
16

In eclissi puoi premere Ctrl + Shift + o per importare automaticamente tutte le librerie di riferimento nel tuo codice. C'è qualche plugin simile per Vim per avere questa funzionalità con Python?Esiste un plugin per Vim per importare automaticamente le librerie Python?

+0

Grazie per la punta di Eclipse, non sapevo di questo. –

+0

Stai cercando di manipolare le librerie come oggetti o semplicemente di accedere/leggere i file? Per l'accesso c'è ctags e posso anche pubblicare uno script di miglioramento getfile 'gf' per python se questo è quello che stai cercando. – michael

+0

@michael: Ciò che intendo è che se digito "itertools.cycle (...)", dovrebbe guardare in cima al file e aggiungere automaticamente "import itertools" se non è già presente. – Daenyth

risposta

8

c'è ropevim. È disponibile anche su pypi

Le funzioni di autoimportazione (aggiunge importazioni mancanti) e di organizzare l'importazione (riordino delle importazioni) funzionano bene, ma a volte è un po 'invasiva (creerà una cartella .ropeproject nel progetto). Il completamento del codice di corda è anche abbastanza buono, quindi uso il completamento del codice standard con la scheda e, quando non è abbastanza, uso ctrl-space per utilizzare il completamento automatico di ropevim.

Ecco alcuni dei miei mappature con ropevim:

" Rope AutoImport and OrganizeImport 
nnoremap <C-S-o> :RopeOrganizeImports<CR>0<CR><CR> 
nnoremap <C-S-i> :RopeAutoImport<CR> 

" Rope AutoComplete 
let ropevim_vim_completion = 1 
let ropevim_extended_complete = 1 
let g:ropevim_autoimport_modules = ["os.*","traceback","django.*","lxml.etree","lxml.*"] 
imap <c-space> <C-R>=RopeCodeAssistInsertMode()<CR> 

" Rope Menu 
menu Python.Create\ Package :RopeCreatePackage<CR> 
menu Python.Create\ Module :RopeCreateModule<CR> 
+0

Ciao, ho trovato che autoimport non funziona per Django. Ad esempio, se digito quando il cursore è su HttpResponse, ropevim non sarebbe in grado di trovare il nome e importarlo. – ablmf

+0

Non riesco a far funzionare ropevim usando macvim – user798719