[Vim Tips] Python & Tab Completion

Vim è un editor estramente versatile e customizzabile, particolarmente adatto alla programmazione e amato da migliaia di geek.

Dalla versione 7, oltre a molte altre funzionalità, offre il completamento del codice che scriviamo.

Vediamo come configurarlo per far sì che ci autocompleti ciò che scriviamo con il tasto Tab invece che con i tasti di default (<C-n> <C-p>) e come abilitare un plugin che ci completi il codice python.

 



Per mappare tab come control-n/control-p non basta un semplice :map dato che poi non potremmo più tabbare per indentare, ci serve perciò una funzione che capisca quando è conveniente completare cioò che stiamo scrivendo o fare una tabulazione.

Aggiungiamo questo al nostro .vimrc e avremo il risultato desiderato

function! Tab_Or_Complete()
if col('.')>1 && strpart( getline('.'), col('.')-2, 3 ) =~ '^w'
return "<C-N>"
else
return "<Tab>"
endif
endfunction
inoremap  <Tab> <C-R>=Tab_Or_Complete()<CR>

Fonte: Vim Wiki


Per avere il supporto python installiamo un plugin che fornirà al nostro editor i completamenti adatti al linguaggio

http://www.vim.org/scripts/script.php?script_id=850

Scarichiamo, estraiamo e copiamo il file complete_dict in una cartella a piacere mentre python_pydiction.vim in ~/.vim/after/ftplugin/python_pydiction.vim

Aggiungiamo poi a .vimrc:

let g:pydiction_location = 'percorso_di_complete_dict'

Il menu di completamento di default di Vim è di un rosa orribile, per cambiarlo aggiungere le seguenti righe (modficandone i colori a piacere) al proprio file di configurazione

highlight Pmenu ctermbg=black ctermfg=white
highlight PmenuSel ctermbg=black ctermfg=red gui=bold

 

Info: .vimrc

Happy Vim 🙂

This entry was posted in Informatica, Linux, Tips 'n Tricks. Bookmark the permalink.