Projet C avec Emacs

De Ensiwiki
Aller à : navigation, rechercher

Utilisation d'Emacs pour le projet C

Cette page est un résumé ultra-minimaliste des fonctionalités de base d'Emacs utiles pour le projet C.

Coloration syntaxique

Pour activer la coloration syntaxique par défaut sous Emacs (si elle n'y est pas déjà), ajoutez ceci à votre ~/.emacs (ou ~/.emacs.el, c'est pareil) :

(global-font-lock-mode 1)

Compiler du C

Emacs-compile-c.png

M-x compile RET vous permet de compiler directement depuis Emacs. Les messages d'erreur de GCC sont mis en couleur, et cliquer sur un message d'erreur ramène à la bonne ligne du fichier source. M-x recompile RET permet de recompiler avec la même commande, sans reposer la question.

GDB

Emacs-gdb.png

M-x gdb RET pour ouvrir une session gdb dans Emacs. C-x SPC dans un fichier source, ou bien un clic dans la marge de gauche, pour mettre un breakpoint à la ligne courante. La section « Using GDB under GNU Emacs » du manuel de GDB vous en dira plus.

En utilisant M-x gdb-many-windows RET pendant le debogage, vous obtenez une présentation plus complète des informations (registres, variables, points d'arrêts, etc.). Pour l'activer par défaut, vous pouvez ajouter à votre .emacs

(setq gdb-many-windows t)
;; affichage du main du programme C
(setq gdb-show-main t)

Indentation

Par défaut, Emacs indente avec le style GNU, avec un niveau d'indentation de 2 caractères. Pour indenter à 8 caractères comme le code qui vous est fourni, et comme le demandent les règles de codage qui vous sont proposées, ajoutez ceci à votre ~/.emacs.

(setq c-default-style "linux")

Si vous avez Emacs 21 ou inférieur, il faut mettre à la place quelque chose comme :

(setq c-default-style "k&r"
      c-basic-offset 8)

Pour remplacer les tabulations par des espaces, il faut rajouter :

(setq-default indent-tabs-mode nil)

Complétion

Tappez le début d'un identificateur, puis M-/ (éventuellement plusieurs fois de suite). Emacs complète avec des indentificateurs déjà connus.

Naviguer dans du code C

Pour indexer un ensemble de fichiers C, dans le répertoire de votre projet, faites :

etags *.c *.h

Ceci crée un fichier TAGS que vous pouvez charger dans Emacs avec M-x visit-tags-table RET.

Ensuite, pour aller à la définition d'une fonction, ou d'une variable globale, faites M-. nom_de_fonction RET, ou simplement M-. RET si le curseur est déjà sur le nom d'une fonction. Pour revenir à l'endroit précédent M-, (Meta-Virgule).

Pour chercher tous les usages de la fonction M-? nom_de_fonction RET

Raccourcis utiles

La refcard Emacs contient un tas de racourcis utiles. Elle est disponible ici : emacs22-refcard.pdf.

Vous pouvez aussi jetter un coup d'oeil à l'article Raccourcis claviers Emacs du Wiki.

Autres présentations d'extensions utiles

La liste précédente est très minimaliste. Parmi les nombreuses autres extensions celles permettant l'auto-complétion (noms des fonctions et des variables) ou l'insertion de patrons (taper forTAB insère une boucle for avec ses trois conditions et les accolades).