2010-08-31 2 views
4

Je ne suis pas entièrement sûr si cette question appartient à stackoverflow ou superuser (y at-il un échange de pile emacs?). Basé sur le post de méta.stackoverflow je suppose que c'est le cas. Mon emacs utilise par défaut les fichiers d'en-tête (de la variété .h) en mode c. Je peux facilement taper M-x C++ - mode et récupérer ma surbrillance, mais parce que je programme plus souvent en C++ qu'en c. Je me demandais ce que je devais changer pour ajouter .h au groupe C++.Définir .h à C++ - groupe de mode dans emacs

+1

Oui, c'est la même question, je ne l'ai pas vu en regardant d'abord. – JSchlather

Répondre

7

Voici ce que j'ai dans mon fichier .emacs:

; Make .h files be C++ mode 
(setq auto-mode-alist(cons '("\\.h$" . c++-mode) auto-mode-alist)) 

Il pourrait y avoir un moyen plus facile, mais cela fonctionne.

+0

C'est la meilleure façon de le faire. – Omnifarious

+1

Bien que cela ne soit pas un problème à moins que vous ayez des noms de fichiers contenant une nouvelle ligne, il est d'autant plus robuste (et cohérent avec le reste de 'auto-mode-alist') d'utiliser' \\ ''au lieu de $ 'pour indiquer la fin du nom de fichier dans le motif. – phils

+1

Pour cette question, vous pouvez dire (setq auto-mode-alist (contre '(, (rx" .h "eos). C++ - mode) auto-mode-alist)) " rx "est un pratique manière de spécifier des expressions régulières en utilisant des expressions s plutôt que des chaînes difficiles à lire. – offby1

3

Eh bien, voici ce que beaucoup de gens font:

// -*-c++-*- 

Cette ligne au sommet de votre tête dit emacs son C++.

J'aime mieux que simplement appeler tous les fichiers C++ .h car certains ne le sont pas. Bien que je dois admettre, même si ça me fait mal parce que c'est moche, j'ai pris l'habitude d'appeler mes fichiers d'en-tête .hpp. : -/