153 votes

Faire fonctionner du code Python dans Vim

Je suis en train d'écrire du code Python en utilisant Vim, et à chaque fois que je veux exécuter mon code, je tape ceci à l'intérieur de Vim:

:w !python

Cela devient frustrant, donc je cherchais une méthode plus rapide pour exécuter du code Python à l'intérieur de Vim. Exécuter des scripts Python depuis un terminal peut-être? Je suis sous Linux.

1voto

A.S Points 865

Une méthode simple consisterait à taper : en mode normal, puis appuyer sur la touche de flèche vers le haut du clavier et appuyer sur Entrée. Cela répétera les dernières commandes tapées sur VIM.

1voto

badteeth Points 795

Si vous voulez revenir rapidement en arrière à travers vos commandes :w, une astuce sympa est de taper :w puis d'appuyer sur la flèche vers le haut. Cela vous permettra de parcourir uniquement les commandes qui commencent par w.

1voto

Bob Cressman Points 27

Mettez votre curseur dans le code quelque part. Cliquez avec le bouton droit et choisissez l'un des choix de "Sélectionner" pour mettre en surbrillance votre code. Ensuite, appuyez sur Ctrl : et vous verrez le nouveau prompt '<, >'

Essayez maintenant !python pour voir si cela fonctionne.

J'ai passé des jours à essayer de résoudre le même problème !!! J'ai utilisé le codage :

s='Mon nom'
print (s) 

Après avoir arraché tous mes cheveux, j'ai finalement réussi!

1voto

jpyams Points 1122

Plutôt que de mettre la correspondance de commande dans votre fichier .vimrc, mettez-la dans votre fichier ~/.vim/ftplugin/python.vim (Windows $HOME\vimfiles\ftplugin\python.vim). Si vous n'avez pas ce fichier ou ces répertoires, créez-les simplement. De cette façon, la touche est seulement mappée lorsque vous ouvrez un fichier .py ou tout fichier avec filetype=python, car vous ne lancerez cette commande que sur des scripts Python.

Pour la correspondance réelle, j'aime être capable de modifier dans Vim pendant que le script s'exécute. En m'inspirant de la réponse de @cazyas, j'ai ce qui suit dans mon fichier ftplugin\python.vim (Windows) :

noremap  :w:!START /B python %

Cela exécutera le script Python actuel en arrière-plan. Pour Linux, il suffit de le changer ainsi :

noremap  :w:!python % &

1voto

Vous pouvez étendre pour n'importe quelle langue avec 1 touche de liaison avec la commande augroup, par exemple :

augroup rungroup
    autocmd!
    autocmd BufRead,BufNewFile *.go nnoremap  :exec '!go run' shellescape(@%, 1)
    autocmd BufRead,BufNewFile *.py nnoremap  :exec '!python' shellescape(@%, 1)
augroup END

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X