177 votes

Utiliser Emacs comme IDE

Actuellement, mon flux de travail avec Emacs quand je suis de codage en C ou C++ comporte trois fenêtres. La plus grande sur la droite contient le fichier que je suis en train de travailler avec. La gauche est divisée en deux, la partie inférieure étant un shell qui me sert de type à la compilation ou de faire des commandes, et le sommet est souvent une sorte de documentation ou le fichier LISEZMOI que je veux consulter pendant que je travaille. Maintenant, je sais qu'il y a quelques jolies expert les utilisateurs d'Emacs, et je suis curieux de savoir ce que les autres Emacs fonctionnellement est utile si l'intention est de l'utiliser comme un environnement complet. Plus précisément, la plupart des IDEs généralement s'acquitter de ces fonctions est une forme ou une autre:

  • Éditeur de code Source
  • Compilateur
  • Débogage
  • La Documentation De Recherche
  • Le Contrôle De Version
  • OO fonctionnalités comme la classe, la recherche et l'inspecteur d'objet

Pour quelques-uns de ces, il est assez évident de savoir comment Emacs peut s'adapter à ces fonctions, mais quid du reste? Aussi, si une langue spécifique doit être axée sur, je dirais qu'il doit être C++.

Edit: Un utilisateur a souligné que j'aurais du être plus précis, quand j'ai dit "ce que sur le reste". La plupart du temps j'étais curieux de connaître efficace de contrôle de version, ainsi que de la documentation de recherche. Par exemple, de BAVE, il est assez facile de faire un rapide hyperspec la recherche d'une fonction Lisp. Est-il un moyen rapide de chercher quelque chose en C++ STL documentation (si j'ai oublié la syntaxe exacte de classes hash_map, par exemple)?

75voto

Ben Collins Points 11318

Vous devrez préciser ce que vous entendez par "le reste". À l'exception de l'inspecteur d'objet (qui j'en suis conscient), emacs ne tous les ci-dessus assez facilement:

  • éditeur (évident)
  • compilateur - il suffit d'exécuter M-x compile et entrez votre commande compile. A partir de là, vous pouvez juste M-x compile et utiliser la valeur par défaut. Emacs capture compilateur C/C++ erreurs (qui fonctionne le mieux avec GCC) et vous permettent d'accéder à des lignes avec des avertissements ou des erreurs.
  • Débogage - de la même manière, lorsque vous voulez le débogage, tapez M-x gdb et il va créer un gdb tampon avec des fixations spéciales
  • La Documentation pour la Recherche emacs a d'excellentes CScope liaisons pour la navigation dans le code. Pour les autres documents: Emacs dispose également d'une page de manuel du lecteur, et pour tout le reste, il y a le web et les livres.
  • contrôle de version - il y a beaucoup d'Emacs liaisons pour diverses VCS backends (CVS, SCCS, RCS, SVN, GIT tous viennent à l'esprit)

Edit: je me rends compte que ma réponse à propos de la documentation de recherche vraiment trait à la navigation dans le code. Voici un peu plus à-le-point info:

La recherche sur Google sera sans aucun doute de révéler d'autres exemples.

Le deuxième lien montre, en recherchant des fonctions (et autre) dans un autre document qui peut être fait, même si pas pris en charge hors de la boîte.

30voto

baudtack Points 8259

Je dois recommander Emacs Code Browser comme un environnement de style IDE plus «traditionnel» pour emacs.

EDIT : Je recommande maintenant Magit fortement sur l'interface VCS standard dans emacs.

19voto

Bryan Oakley Points 63365

Au lieu d'exécuter une commande make dans la fenêtre shell, avez-vous essayé la compilation Mx? Il exécutera votre commande make, affichera les erreurs et, dans de nombreux cas, il sera très facile de passer à la ligne de code qui a provoqué l'erreur si la sortie inclut des noms de fichiers et des numéros de ligne.

Si vous êtes un fan des IDE, vous pouvez également regarder le paquet speedbar d'emacs (speedbar Mx). Et, si vous ne l'avez pas déjà fait, apprenez comment utiliser les tableaux de balises pour naviguer dans votre code.

16voto

justinhj Points 5060

Il y a des coins d'emacs qui une fois découverte, vous rendre plus productif dans les façons vous n'avez jamais pensé. Comme d'autres l'ont mentionné, à l'aide de balises est un fantastique moyen rapide pour effectuer un zoom autour de votre code source et de l'utilisation de M-/ (dabbrev-développez) n'est souvent exactement ce que vous attendez lorsque vous remplissez un nom de variable.

À l'aide de se produire est utile pour obtenir un tampon avec toutes les occurrences d'une expression régulière dans une mémoire tampon. C'est vraiment à portée de main lors de la refactorisation de code et à la recherche de fragments de code ou de l'utilisation de variables, ou si vous utilisez TODO marqueurs dans vos fichiers source et vous souhaitez les visiter tous.

rincer les lignes de tri-numérique-champs, replace-regexp et rectangle fonctions peuvent être très utiles pour prendre une image d'un outil et de le convertir en données utiles comme un elisp programme ou délimité par des virgules feuille de calcul.

J'ai écrit une page sur IDE comme les choses que vous pouvez faire avec emacs

http://justinsboringpage.blogspot.com/2007/09/11-visual-studio-tricks-in-emacs.html

L'apprentissage elisp est une autre excellente façon d'y répondre pour vous-même ce que d'autre emacs peut faire au-delà de ce typique d'un IDE peut faire.

Pour exemple, j'ai blogué sur l'écriture de Perforce fonctions d'aide pour les fautes (de l'écriture de vos propres moyens, vous pouvez le faire se comporter exactement comme vous voulez)...

http://justinsboringpage.blogspot.com/2009/01/who-changed-line-your-working-on-last.html

J'ai également écrit un code qui crée dynamiquement les commentaires d'une fonction en un point, qui correspond aux normes de codage, je travaille avec.

Aucun de mes elisp code est particulièrement grande, et plus il existe déjà dans les bibliothèques, mais il est vraiment utile pour être en mesure de faire emacs ne personnalisée des trucs qui vient juste pendant un jour ouvrable.

10voto

Alex Ott Points 14329

Vous pouvez trouver une description détaillée de l’intégration de contrôle emacs & version sur mon site. Je travaille aussi sur l’article sur l’utilisation d’Emacs comme environnement de développement pour de nombreuses langues - C/C++, Java, Perl, Lisp/Scheme, Erlang, etc....

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