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 🙂