récemment, je commencé à utiliser Emacs comme un IDE Python, et pas tout à fait intuitive ... Le problème que je me bats avec est en ce moment comment transmettre des arguments de ligne de commande à l'inférieur shell python lorsque le tampon est évalué avec Cc Cc. Merci pour l'aide.Emacs: passer des arguments à shell Python inférieure lors de l'évaluation tampon
Répondre
Cela ne semble pas être facilement possible; le processus inférieur géré par le module python.el
est conçu pour persister dans de nombreuses invocations de python-send-buffer
(et amis). Une solution que j'ai trouvé est d'écrire votre propre fonction qui définit sys.argv
par programmation à partir dans le processus inférieur:
(defun python-send-buffer-with-my-args (args)
(interactive "sPython arguments: ")
(let ((source-buffer (current-buffer)))
(with-temp-buffer
(insert "import sys; sys.argv = '''" args "'''.split()\n")
(insert-buffer-substring source-buffer)
(python-send-buffer))))
exécuter cette fonction dans votre tampon *scratch*
et/ou l'enregistrer dans votre fichier .emacs
, puis, si vous voulez, liez-le à une séquence de touches pratique. C-c C-a
ne semble pas être utilisé par python-mode
, donc peut-être:
(global-set-key "\C-c\C-a" 'python-send-buffer-with-my-args)
La commande vous invite à saisir les arguments à utiliser, puis copiez votre tampon source dans un tampon temporaire, préfixer avec un extrait de code qui définit sys.argv
à la liste des arguments que vous avez fournis, et enfin appelez python-send-buffer
. Le code ci-dessus séparera naïvement la chaîne que vous tapez sur les espaces, donc si vous devez fournir des arguments contenant des espaces, vous aurez besoin d'un algorithme plus sophistiqué.
- 1. Emacs shell-command redémarrer lors d'un plantage
- 2. Boost :: Python: Passer des arguments personnalisés à gcc lors de la construction de l'extension python
- 3. Dans Emacs, comment passer à un autre tampon?
- 4. Problème avec les arguments du processus de shell Lisp emacs
- 5. Commandes Emacs et Long Shell
- 6. Utilisation de shell par rapport à eshell chaque fois qu'une action Emacs doit générer un shell dans un nouveau tampon
- 7. Comment transmettre des arguments au script shell?
- 8. Cocoa Emacs tampon d'impression
- 9. Rechargement d'un fichier python modifié dans le shell python emacs
- 10. Passer des arguments à tort? C Question
- 11. Passer des arguments à une fonction?
- 12. Commande shell Emacs introuvable
- 13. Passer des arguments partiels dans tcshell
- 14. comment aligner des arguments à des fonctions dans emacs?
- 15. tampon emacs lier à la clé
- 16. emacs: zone tampon non contiguë
- 17. Script Shell, arguments
- 18. Python: Passer des fonctions avec des arguments à une fonction intégrée?
- 19. VIM: Comment passer des arguments à des fonctions à partir de commandes utilisateur?
- 20. shell cygwin dans emacs /cmd.exe dans windows
- 21. Comment passer des arguments de la méthode à un sélecteur
- 22. Drupal: passer des arguments à la fonction de formulaire drupal_get_form
- 23. django, uni_form et __init __() fonction de python - comment passer des arguments à un formulaire?
- 24. Ouverture d'un nouveau tampon Emacs à l'aide d'un découpage vertical
- 25. aider à passer des arguments à la fonction
- 26. Passer des arguments à java vm depuis le script NSIS
- 27. Exécuter automatiquement des commandes lors du lancement du shell python
- 28. Y at-il un moyen de passer des arguments à un pkg
- 29. Emacs Pabbrev et Python
- 30. Passer des arguments supplémentaires avec Tkinter Bindings
Merci Sean, j'ai eu l'idée. Ça fait l'affaire. Dans ce cas, je peux également passer les arguments en définissant directement la variable sys.argv avant d'appeler la fonction principale. – Sammy
+1 pour la bonne idée. –
si vous obtenez cette erreur 'progn: La définition de la fonction de symbole est vide: python-send-buffer' essayez de changer' python-send-buffer' en 'python-shell-send-buffer'. – boclodoa