Vim comme IDE Python
Je me suis récemment décidé à peaufiner ma configuration de Vim (qui était plutot basique jusqu’ici) pour que le développement y soit plus facile. Alors étant donné que la grande majorité du code que j’édite est en Python, j’ai cherché un maximum d’astuces pour en faire un IDE digne de ce nom.
Voici donc ma nouvelle configuration:
vimrc
"
" Vim configuration file
"
set nocompatible
if has("autocmd")
filetype plugin on
filetype plugin indent on
endif
if has("mouse")
set mouse=a
endif
syntax on
set hlsearch
set incsearch
set ignorecase
set showmatch
set noswapfile
set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab
set autoindent
set foldmethod=indent
set backspace=indent,eol,start
set history=100
set ruler
set showcmd
set number
set nospell
colorscheme delek
map <C-t> :tabnew<CR>
"
"python specific settings
"
autocmd FileType python set complete+=k~/.vim/syntax/python.vim isk+=.,(
set omnifunc=pythoncomplete#Complete
imap <C-Space> <C-x><C-o>
autocmd BufWrite *.py silent! %s/[\r \t]\+$//
map <buffer> <F5> :w<CR>:!/usr/bin/env python % <CR>
python << EOF
import os
import sys
import vim
for p in sys.path:
if os.path.isdir(p):
vim.command(r"set path+=%s" % (p.replace(" ", r"\ ")))
EOF
autocmd BufNewFile *.py,*.pyw 0read ~/.vim/templates/python.txt
la plupart des commandes sont facilement compréhensibles, pour les autres, une petite explication:
ligne 34: raccourci clavier pour pouvoir ouvrir un nouvel onglet avec Ctrl+t
ligne 40,41: code-completion améliorée grace à ce script
ligne 42: code-completion avec Ctrl+Space au lieu de Ctrl+x,Ctrl+o (uniquement en mode insertion)
ligne 44: suppression des espaces en fin de ligne lors de la sauvegarde du fichier
ligne 46: lancer le fichier actuel avec la touche F5
ligne 48-55: ajoute les modules python au path de vim, ‘gf’ sur un import ouvrira le module en question dans vim (Ctrl+o pour revenir à l’ancien fichier)
ligne 57: utilisation d’un template lors de la création d’un nouveau fichier .py, mon template est tres simple et contient uniquement
#!/usr/bin/env python # -*- coding: utf-8 -*-
J’ai également installé le plugin pyflakes pour vim, qui permet d’afficher les erreurs de syntaxe en temps réel, les erreurs sont soulignées et des infos supplémentaires s’affichent si on place le curseur sur l’erreur en question.
En plus de tout ça, j’ai installé un script vim pour améliorer l’indentation auto pour Python, pour cela il suffit de placer dans ~/.vim/indent/ le fichier récupérable ici
Voilà c’est tout, mais ca améliore vraiment le confort, en tout cas pour moi.
Si vous avez d’autres astuces, n’hésitez pas à poser un commentaire.
Super article, c’est pile ce que je cherchais. Merci du partage