J’ai lu avec intéret les 2 posts d’arnaud sur ipython et pour le moment je fais mieux avec vim (et depuis des années, pas avec la version 2012!)
pour le fait de pouvoir manipuler la stdout d’une commande, qx existe en perl et il doit y avoir un truc du meme gout en python:
my @lines = qx(ls);
my $i=0;
print $i++,": $_" for @lines;
pour %edit … toi quoi vient du monde des IDEs, je pige pas que tu utilises ce truc! j’ai ouvert google, tappé « Eclipse python » et suis tombé là dessus.
maintenant: quand je te disais que vim était tout a fait bien, demonstration:
dpkg -L vim-runtime | grep perl | vim -
que vois-je?
/usr/share/vim/vim71/syntax/perl.vim
syntax highlight
.vimrc: syn on
/usr/share/vim/vim71/indent/perl.vim
/usr/share/vim/vim71/ftplugin/perl.vim
un filetype plugin et indent
.vimrc: filetype plugin indent on
/usr/share/vim/vim71/compiler/perl.vim
un compiler! kesako? et bien a part le debbuger interactif, vim dispose des fonctions minimales d’un IDE:
- la commande :make permet de lancer la commande externe make
- la sortie d’erreur est utilisé par vim pour créer une liste d’erreurs, la liste des fichiers et des lignes ou ces erreurs se sont produites.
- apres execution, vim se met sur la premiere erreur
- :clist te permet d’afficher la liste des erreurs, tu tappes le numero d’erreur pour y acceder
ouais mais tu vas pas créer un makefile pour un script python? right! c’est pourquoi tu peux choisir la commande qui sera executée a la place de make grace a makeprg. La chose est que le symbole % est expand comme le nom du fichier courant.
et puis la clist, comment elle est générée? réponse: vim utilise la variable errorformat qui contient une liste de motifs et des instructions pour savoir quoi en faire. C’est avec cette variable que vim traite la stderr.
le fichier compiler se limite en général a déclarer correctement ces deux variables. ensuite, tu appelles la commande compiler (soit directement depuis le mode commande de vim, soit en ajoutant dans ~/.vim/ftplugin/perl.vim)
alors que ces fichiers sont tres riches pour perl, tout ou presque reste a faire pour python (bonne chance pour le errorformat).
autre variable intéressante: autowrite qui enregistre automatiquement avant :make.
allez, exercice:
vim jefaispi.py
:set aw makeprg=python\ %
# edit, edit, edit
:make
# edit, edit, edit
:make
ZZ
sauf que ca va vite etre chiant de tapper setmakeprg=… a chaque fois que je code et je n’ai pas envie de remplir un par un les fichiers ~/.vim/ftplugin/* avec l’interpreteur qui va bien … d’autant que tu utilises de temps en temps des options de l’interpreteur (perso en perl: -wc, -T -I …) … en plus c’est presque aussi chiant de tapper :make que de relancer …
et la, marco te sors son vimrc .. enfin .. un petit bout:
" don't need to write before :make
set aw
" :MP perl %
" to set perl as 'makeprg'
command -nargs=* MP exec 'set mp=' . escape(<q-args>,' ')
nnoremap ,c :make<cr>
ok … on refait la meme chose qu’avant:
vim jefaispi.py
:MP python %
# edit, edit, edit
,c
# edit, edit, edit
,c
ZZ