Comment dire emacs pour l'ouvrir .h de fichier en C++ mode?
Ce que les lignes devrais-je ajouter à mon _emacs (sur Windows) le fichier à ouvrir .h les fichiers en C++ mode? La valeur par défaut est C mode.
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
Chaque fois que vous ouvrez .h les fichiers, C++en mode sera utilisé.
Une autre approche pour l'utilisation à la fois de mode c et c++en mode selon le cas, est d'utiliser répertoire des variables locales pour définir le mode de.
Répertoire variables sont évaluées après la mode a été mis en1, de sorte que vous pouvez réellement écrire un
.dir-locals.el
fichier pour votre projet C++ contenant ceci:Et Emacs va changer le mode de
c++-mode
chaque fois qu'il avait mis àc-mode
.Si vous travaillez avec un mélange de C et de C++ projets, ce qui rend pour une jolie solution triviale sur une base par projet.
Bien sûr, si la majorité de vos projets C++, vous pouvez définir c++en mode par défaut2, et vous pouvez ensuite utiliser cette approche dans le sens inverse pour passer en mode c, le cas échéant.
1
normal-mode
appels(set-auto-mode)
et(hack-local-variables)
dans cet ordre. Voir aussi: Comment puis-je accéder à l'annuaire des variables locales dans mon mode majeur crochets?2 Pour ce faire, ajoutez
à votre
.emacs
fichier ouvrir.h
fichiers en C++ en mode par défaut.mode
est une forme particulière de fichier dans la variable locale de listes et est documentée ici.(add-to-list 'auto-mode-alist '("\\.glsl\\'" . glsl-mode))
?Si tu ne veux pas que cela s'applique à tous .h fichier, vous pouvez ajouter ce qui suit au fond de votre C++ fichiers d'en-tête.
Cela fonctionnera pour tout Emacs variables que vous souhaitez définir un fichier par fichier. Emacs ignore les personnages principaux, afin de l'utiliser quel que soit caractères de commentaire sont appropriés pour le type de fichier.
Apparemment, vous pouvez également mettre ceci en haut de la fiche:
dire Emacs c'est un fichier C++.
- Je utiliser ce depuis que j'ai assez souvent sur la vanille, Emacs et il fonctionne sans configuration d'Emacs en quelque sorte.
// -*- mode: c++ -*-
. Vous pouvez également ajouter d'autres variables dans y tels que-*- coding: utf-8; mode: python; tab-width: 4; -*-
Depuis que j'utilise à la fois le C et le C++ régulièrement, j'ai écrit cette fonction pour essayer de "deviner" si un .h fichier est destiné à être C ou C++
Et si cela ne fonctionne pas j'ai mis une touche pour basculer entre le C et le C++ modes
Il n'est pas parfait, il y a peut être une meilleure heuristique pour décider si un en-tête est C ou C++, mais cela fonctionne pour moi.
cat
vos variables locales à la fin des en-têtes dans une 3e partie du projet, mais c'est beaucoup trop d'effort de l'OMI.(string-match "llvm" (buffer-file-name))
pour déterminer si un .h fichier c++ ou pas (llvm est un projet c++).Je pourrais jurer que j'ai vu cette question a répondu de façon appropriée déjà? Bizarre.
Vous voulez que cela: