[PageD'Accueil] [IndexDesTitres] [IndexDesTermes

Vim

Disponible sur: http://www.vim.org/

Le vi amélioré (vi improved). En recherchant Python sur le site vim.org, vous trouverez divers liens (outils, trucs et astuces, configurations...) concernant l'utilisation de VIM pour l'édition de sources Python, voir pour l'utilisation de Python comme langage outil de script dans VIM. On a ainsi dans vim l'auto-complétion, le code folding, l'aide en ligne sur les librairies...

La configuration de vim s'effectue soit dans ~/.vimrc, soit dans l'arborescence ~/.vim

Dans le cas de l'arborescence il est possible d'indiquer une configuration et des plugins particuliers en fonction du type de fichier. Ainsi tous les scritps du répertoire ~/.vim/ftplugin/python/ seront lancés si l'on ouvre un fichier python.

Il existe une quantité inombrable de plugins, scripts et macros pour ajouter des fonctionalités et configurer vim pour l'édition de sources en python. Ils sont généralement référencés sur le site de vim et chacun doit choisir les siens ! N'hésitez pas à parler de ceux que vous preferez sur cette page...

Si l'on ne trouve pas son bonheur il suffit de les écrire soit-même, soit avec le langage intégré soit en python (voir plus bas).

Utilisation des espaces au lieu de TAB

set ai|set softtabstop=4|set tabstop=4|set shiftwidth=4|set expandtab

Coloration syntaxique

syntax enable

Lancer (F12) / Compiler (F11) le buffer en cours, avec visualisation (\c) des erreurs

"Run the current buffer in python"
autocmd BufNewFile,BufRead *.py map <buffer> <F12> :w!<cr>:!python %<cr>
autocmd BufNewFile,BufRead *.py imap <buffer> <F12> <esc>:w!<cr>:!python %<cr>
"Set some bindings up for 'compile' of python
autocmd BufNewFile,BufRead *.py set makeprg=python\ -c\ \"import\ py_compile,sys;\ sys.stderr=sys.stdout;\ py_compile.compile(r'%')\"
autocmd BufNewFile,BufRead *.py set efm=%C\ %.%#,%A\ \ File\ \"%f\"\\,\ line\ %l%.%#,%Z%[%^\ ]%\\@=%m
autocmd BufNewFile,BufRead *.py nmap <buffer> <F11> :w!<cr>:make<cr>
autocmd BufNewFile,BufRead *.py imap <buffer> <F11> <esc>:w!<cr>:make<cr>
autocmd BufNewFile,BufRead *.py map <buffer> <leader>c :cope 5<cr>

Plugins

FileExplorer

Ce plugin permet de naviguer dans les répertoires du disque. La liste des fichiers apparaît sur le bord et le ou les fichiers à éditer apparaissent à côté.

Mise en fin de liste des suffixes .pyc .pyo

set suffixes=.bak,~,.swp,.o,.info,.aux,.log,.dvi,.bbl,.blg,.brf,.cb,.ind,.idx,.ilg,.inx,.out,.toc,.pyc,.pyo

TagList

Ce plugin permet de naviguer dans un code source. Il affiche sous forme arborescente la liste des classes, functions etc.

python_fold

Ce plugin permet de masquer-démasquer des blocs (classes, méthodes, boucles...), ce que l'on nomme "code folding".

scripter vim en python

Il faut que vim soit compilé avec le support python (python-vim ou python-full sous Debian) Ensuite les plugins peuvent être écrits en python :-)

Exemple d'un plugin pour effacer tout le texte jusqu'à la signature (d'un email), à enregistrer dans ~/.vim/ftplugin/mail/

function! Raz2Sign()
python << EOF
import vim
cb = vim.current.buffer
cw = vim.current.window
row, col = cw.cursor
row = row -1
while row<len(cb) and not cb[row].startswith("--"):
        del cb[row]
EOF
endfunction
map dz <Esc>:call Raz2Sign()<CR>O<Esc>

2016-06-05 21:43