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.

8voto

TankorSmash Points 3443

Gardez à l'esprit que vous pouvez répéter la dernière commande utilisée avec @:, donc tout ce que vous auriez à faire pour la répéter sont ces deux caractères.

Ou vous pourriez enregistrer la chaîne w !python dans l'un des registres (comme "a par exemple) puis appuyer sur :a pour insérer le contenu du registre a dans la ligne de commande et l'exécuter.

Ou vous pouvez faire comme moi et mapper z sur :!python % pour exécuter le fichier actuel.

5voto

Jabba Points 1664

Si vous ne voulez pas voir ":exec python file.py" imprimé à chaque fois, utilisez ceci:

nnoremap  :echo system('python2 "' . expand('%') . '"')
nnoremap  :echo system('python3 "' . expand('%') . '"')

Cela n'a pas perturbé ma barre d'état powerline / vim-airline non plus.

5voto

Alex Kosh Points 327

Pensez à utiliser la ligne de shebang, ainsi vous pourrez l'utiliser avec n'importe quel langage, pas seulement Python.

Ajout de la shebang :

Ajoutez ceci à la première ligne de votre script :

#!/usr/bin/env python3

ou ceci, si vous utilisez Python 2 :

#!/usr/bin/env python2

Mappe clavier Vim :

Ajoutez ceci à votre ~/.vimrc :

nmap  :w:!clear;"%:p"

Rendre le fichier exécutable :

Tapez dans Vim :

:!chmod +x %

ou dans le terminal :

chmod +x script_name.py

Explication :

Lorsque F7 est pressé en mode normal, Vim tentera d'exécuter le fichier courant comme script bash. Ensuite, l'interpréteur bash verra la ligne de shebang et comprendra que ce fichier doit être passé à Python (ou à tout autre programme si nécessaire).

Vous pourrez également exécuter votre script depuis le terminal en utilisant son nom :

./script_name.py

Au lieu de cette méthode (qui fonctionnera également) :

python3 script_name.py

3voto

Yosh Points 371

Pour une utilisation générique (exécuter python/haskell/ruby/C++... depuis vim en fonction du filetype), il existe un bon plugin appelé vim-quickrun. Il prend en charge de nombreux langages de programmation par défaut. Il est également facilement configurable, de sorte que l'on peut définir des comportements préférés pour tout type de fichier si nécessaire. Le dépôt github n'a pas de readme élaboré, mais il est bien documenté avec le fichier doc.

3voto

derwin Points 39

J'ai ceci dans mon fichier .vimrc :

"map  :w:!python %"

ce qui enregistre le tampon actuel et exécute le code en appuyant uniquement sur Esc + F9

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