Dans ipython> = 0.11, la commande% paste est requise pour coller les commandes indentées. Cependant, si je lance un shell ipython dans un terminal distant, le tampon% paste fait référence à la machine distante plutôt qu'à la machine locale. Y at-il un moyen de contourner cela?ipython:% coller sur la connexion ssh
Répondre
Je pense que c'est exactement ce que %cpaste
est pour (je oublie toujours toutes les choses qu'IPython fait). %cpaste
entre dans un état vous permettant de coller du code déjà formaté ou indenté, et dépouillera l'indentation et les invites, de sorte que vous pouvez copier/coller le code indenté des fichiers, ou même d'une session Python interactive incluant >>>
ou In [1]
qui seront supprimés .
est-ce que% cpaste tire du tampon local ou distant? – keflavich
local (à l'utilisateur, pas à IPython). '% cpaste' entre dans un mode qui empêche tout le truc automatique, etc., de sorte que le collage régulier du code fonctionne. Il ne tire pas directement du presse-papiers, comme '% paste'. Donc, si vous faites '% cpaste''
Pas une solution brillante, mais je pense que cela va fonctionner:
Utilisez %autoindent
pour désactiver auto-indentation, le type if True:
et appuyez sur Entrée. Puis collez votre code en retrait.
Je pense qu'il devrait être possible d'écrire une extension IPython pour gérer cela mieux. Je vais essayer de tourner autour de ça. J'ai fait an issue. Si vous utilisez beaucoup IPython, vous voudrez peut-être faire fonctionner la nouvelle architecture noyau/client - il devrait être possible de tunnelliser les connexions sur SSH, de sorte que vous puissiez utiliser la console Qt sur votre machine locale, en parlant à un noyau sur un serveur. Mais cela pourrait prendre un peu de violon pour se mettre en place.
La raison pour laquelle le collage régulier est foiré est qu'il simule essentiellement chaque caractère à travers le terminal. Il est impossible de détecter s'il s'agit réellement d'un typage ou d'un collage, donc IPython va autoindenter une ligne, puis votre indentation collée vient après. Ce sera juste une indentation supplémentaire si votre pâte est deux lignes, mais elle sera en fait incorrecte dans la plupart des cas. – minrk
Merci Thomas. Ce n'est pas tout à fait une solution, mais la reconnaissance qu'il s'agit d'un bug (ou du moins peut être considéré comme tel) est suffisante. Pour l'instant je m'en tiendrai à la solution de contournement que vous avez fournie. – keflavich
- 1. Connexion PHPFog avec SSH
- 2. MacRuby: connexion SSH avec net/ssh?
- 3. Envoyer un email sur connexion ssh
- 4. Problème de connexion SSH sur EC2
- 5. Comment configurer le tunnel ssh pour un cluster ipython (ipcluster)
- 6. SSH via une autre connexion SSH
- 7. SSH Connexion Java
- 8. Test connexion ssh
- 9. La connexion Mercurial SSH échoue sur Linux RedHat 5
- 10. Comment empêcher la connexion ssh interactive?
- 11. Connexion Perl ssh et exécution de la connexion telnet
- 12. Connexion à Windows SSH Server
- 13. Autorisation de connexion SSH refusée
- 14. Délai de connexion persistante SSH
- 15. connexion ssh en utilisant cygwin
- 16. AWS EC2 Connexion via ssh
- 17. VisualVM sur ssh
- 18. Ipython et Curses sur Windows
- 19. ipython: commande introuvable sur OSX
- 20. Connexion SSH ouverte sur une interface réseau spécifique (JSch)
- 21. Problème de connexion SSH avec Git
- 22. mongodb client - connexion ssh de localhost php
- 23. SSH "Moniteur de connexion" pour Linux
- 24. Connexion SSH avec le script NAnt
- 25. Connexion à MySQL via SSH avec PHP
- 26. Google Compute Engine - dépannage SSH "Connexion refusée"
- 27. Comportement étrange de connexion Vagabond/SSH
- 28. La connexion SSH à la boîte Homestead Vagrant expire
- 29. Vérification de connexion ssh en perl
Je viens de me rappeler qu'il y a aussi la magie '% cpaste'. Cela vous donne un espace pour coller, et vous pouvez simplement ajouter '--' sur une ligne pour arrêter et exécuter le code que vous avez collé. –
Veuillez changer la réponse à '% cpaste', c'est la meilleure solution. Merci –