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?
risposta
C'è uno strumento da riga di comando chiamato mr.igor
che è possibile installare. Ci sono le istruzioni per l'aggancio fino a vim sulla pagina PyPI:
Testato. Non funziona – ablmf
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>
Ciao, ho trovato che autoimport non funziona per Django. Ad esempio, se digito
Non riesco a far funzionare ropevim usando macvim – user798719
Grazie per la punta di Eclipse, non sapevo di questo. –
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
@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