variables locales
Le
Didier Couderc

Bonjour,
Je travaille sur plusieurs projets qui utilisent des conventions
différentes et c'est un peu pénible.
Je voudrais utiliser les variables locales pour positionner, par
exemple, tab-width. Donc, à la fin de machin.cpp (c'est du C++) je
rajoute ces 3 lignes :
// Local Variables:
// tab-width: 4
// End:
Je recharge le fichier, fume, toujours 8.
La syntaxe est valide car si je change l'extension du fichier, en
machin.blorf par exemple, j'ai bien 4.
Je suppose donc que c'est c-mode qui change la valeur.
Est-ce qu'il y a un moyen de lui faire respecter la valeur spécifiée
dans les variables locales ?
Au cas ou :
XEmacs 21.4 patch 12
CC Mode version 5.30.10 (venant des packages XEmacs)
--
Mog
Je travaille sur plusieurs projets qui utilisent des conventions
différentes et c'est un peu pénible.
Je voudrais utiliser les variables locales pour positionner, par
exemple, tab-width. Donc, à la fin de machin.cpp (c'est du C++) je
rajoute ces 3 lignes :
// Local Variables:
// tab-width: 4
// End:
Je recharge le fichier, fume, toujours 8.
La syntaxe est valide car si je change l'extension du fichier, en
machin.blorf par exemple, j'ai bien 4.
Je suppose donc que c'est c-mode qui change la valeur.
Est-ce qu'il y a un moyen de lui faire respecter la valeur spécifiée
dans les variables locales ?
Au cas ou :
XEmacs 21.4 patch 12
CC Mode version 5.30.10 (venant des packages XEmacs)
--
Mog
CC Mode utilise c-basic-offset (4 par défaut il me semble) pour calcul er
son indentation.
Pour ce qui est de l'interaction avec les tabs, tu trouveras peut-être
des infos là : http://www.emacswiki.org/emacs/IndentingC (la partie
"Tabs Instead of Spaces"). Peut-être indent-tabs-mode ? Sais pas, je
n'utilise jamais de tabulation.
[...]
Ouch. Je ne sais pas si tout cela est valable pour cette version.
-- Alain.
Alain Ketterlin
Il me semble que cette valeur sert pour la saisie de code nouveau.
Mon pb est essentiellement avec le code existant, qui contient des
TAB, qui occupent tab-width espaces à l'écran et que quand je charge
un fichier, tab-width vaut 8 et l'indentation est foireuse. Je change
la valeur de tab-width à 4 et ça corrige l'affichage.
Pareil. Seulement je ne suis pas seul :-)
Merci pour le lien, je vais fouiller.
--
Mog
[...]
Est-ce que par hasard tu n'aurais pas une fonction crochet appelée en
mode c, et qui remettrait le tab à 8.
Est-ce que tu as essayé d'ouvrir le même fichier en lançant Emacs sans
fichier d'init, c.-à-d. "emacs -q" en ligne de commande.
Sinon je trouve qu'utiliser les variables locales pour ce genre de chose
n'est pas une très bonne pratique --- avis personnel... On peut dans une
fonction crochet discriminer le chemin du fichier et régler la
tabulation en fonction.
Vincent.
As-tu connaissance de l'existence de variables locales à un réper toire (et non à un fichier)
https://www.gnu.org/software/emacs/manual/html_node/emacs/Directory-Variabl es.html
Ce qui ne résout pas ton autre problème...
J'ai essayé en créant un fichier foo.cpp qui contient
/* Local Variables: */
/* tab-width: 31 */
/* End: */
je l'ouvre, j'évalue tab-width (avec M-: tab-width RET) et j'obtiens
bien 31.
J'utilise GNU emacs et CC Mode version 5.32.5
Regarde si tu as le même problème en n'utilisant pas tes fichiers
d'init. Si oui, tente un grep sur "tab-width" dans les différents
cc-*.el
a+
--
Nicolas Richard