2008-10-01 8 views
34

J'ai récemment commencé à apprendre Emacs. Je suis allé à travers le tutoriel, lire quelques articles d'introduction, si loin si bon. Maintenant je veux l'utiliser pour le développement de Python.Emacs et Python

Maintenant je veux l'employer pour le développement de Python. D'après ce que je comprends, il existe deux modes Python distincts pour Emacs: python-mode.el, qui fait partie du projet Python; et python.el, qui fait partie d'Emacs 22.

J'ai lu toutes les informations que j'ai pu trouver mais la plupart semblent assez obsolètes et je suis toujours confus.

Les questions:

  1. Quelle est leur différence?
  2. Quel mode dois-je installer et utiliser?
  3. Existe-t-il d'autres add-ons Emacs indispensables au développement de Python?

Liens utiles:

+0

J'ai utilisé Emacs pendant 2 ans, mais lire et écrire Python dans Emacs est toujours un cauchemar pour moi.La configuration complexe de corde, ropemace, pymacs ... me rend fou. Donc, personnellement, je recommande Eclipse + pydev. – Wilbeibi

Répondre

20

Si vous utilisez GNU Emacs 21 ou avant, ou XEmacs, l'utilisation python-mode.el. Le GNU Emacs 22 python.el ne fonctionnera pas dessus. Sur GNU Emacs 22, python.el fonctionne et s'intègre mieux avec l'analyse syntaxique et l'achèvement des symboles propres à GNU Emacs, ElDoc, etc. J'utilise XEmacs moi-même, donc je ne l'utilise pas, et j'ai entendu des gens se plaindre Cela fonctionne très bien dans le passé, mais il existe des mises à jour qui corrigent certains problèmes (par exemple, sur la page emacswiki que vous liez), et vous espérez que certaines d'entre elles ont été intégrées en amont. Si j'étais le genre GNU Emacs, j'utiliserais python.el jusqu'à ce que je trouve des raisons spécifiques de ne pas le faire.

Le plus gros problème de python-mode.el pour autant que je l'ai vu est qu'il ne comprend pas tout à fait les chaînes entre guillemets. Il les traite comme des guillemets simples, ce qui signifie qu'une seule citation à l'intérieur d'une chaîne de guillemets triple va mettre fin à la mise en évidence de la syntaxe: elle va penser que la chaîne s'est terminée là. Vous devrez peut-être également modifier votre auto-mode-alist pour activer le mode python pour les fichiers .py; Je ne me souviens pas si c'est toujours le cas, mais mon init.el est en train de paramétrer l'auto-mode-alist depuis de nombreuses années maintenant.

Comme pour les autres addons, rien de ce que je considère comme «essentiel». Le menu func de XEmacs est parfois utile, il vous donne un petit menu fonction/navigateur pour le fichier en cours. Je ne me souviens pas si GNU Emacs a quelque chose de similaire. J'ai un premier mode pour l'édition de reStructuredText, comme cela est utilisé dans certains projets. Le fait de faire des liens avec n'importe quel VC que vous utilisez, le cas échéant, peut vous être utile, mais il existe un support intégré pour la plupart des fichiers .el facilement téléchargeables pour les autres.

+2

En tant qu'utilisateur GNU emacs 22 (sous Windows). Je seconde ceci. python-mode.el ne vous achète vraiment rien (bien que cela fonctionne). La seule vraie raison d'utiliser python-mode.el pourrait être de faire fonctionner ipython dans emacs, cependant, cela ne semble pas fonctionner correctement dans Windows, malheureusement. Sur unix, YMMV .... –

8

This site a une description de la façon d'obtenir l'achèvement du code Python dans Emacs. Ropemacs est un moyen de faire fonctionner Rope dans emacs. Je n'ai pas eu une longue expérience avec l'un ou l'autre, mais ils méritent d'être étudiés.

+1

J'utilise des ropemacs (pas la version de pointe), il est plutôt facile à installer et à utiliser selon les instructions. –

+1

J'ai juste essayé les ropemacs et je peux être d'accord avec les autres commentateurs :) rope + ropemode + ropemacs == awesome. Une bonne entrée de blog sur le développement de python avec emacs btw .: http://www.enigmacurry.com/2008/05/09/emacs-as-a-powerful-python-ide/ reste une bonne référence même si c'est un peu daté – tr9sh

7

Compte tenu du nombre de fois que j'ai plusieurs buffers ouverts tous appelés __init__.py, je considère la bibliothèque uniquify essentielle pour le développement de python.

Les pyflakes contribuent également à la productivité.