2010-01-19 12 views
2

J'utilise Emacs 23.1 avec ESS 5.4 pour éditer un fichier Sweave. Je voudrais désactiver le comportement d'indentation par défaut AUCTeX dans le tampon (pour éviter les ennuis avec des morceaux de code contenus dans les listes détaillées), donc en haut du fichier j'ai % -*- LaTeX-indent-level: 0; LaTeX-item-indent: 0; -*-. Quand j'ouvre le tampon et exécuter C-h v LaTeX-indent-level, je reçois ce que je voulais:Variables-variables locales avec Emacs et Sweave

LaTeX-indent-level is a variable defined in `latex.el'. 
Its value is 0 
Local in buffer test.Rnw; global value is 2 

    This variable is a file local variable. 

Cependant, après modifier un morceau de code, il retourne au comportement par défaut. C-h v LaTeX-indent-level cède maintenant:

LaTeX-indent-level is a variable defined in `latex.el'. 
Its value is 2 

J'ai essayé le correctif proposé dans the noweb-mode FAQ, qui suggère d'ajouter

(add-hook 'noweb-select-mode-hook 
       '(lambda() (hack-local-variables-prop-line))) 

à mes emacs. Le comportement décrit ci-dessus a persisté quand je l'ai fait.

Y a-t-il un moyen pour que les variables locales du tampon fonctionnent dans cette situation? Je préférerais ne pas avoir à changer mon .emacs pour mettre LaTeX-indent-level à 0 dans tous les buffers Sweave/noweb.

Répondre

0

Je ne l'ai pas testé, mais essayez ce qui suit à la place:

(add-hook 'noweb-select-mode-hook 
       '(lambda() (hack-local-variables))) 

Peut-être hack-variables locales-prop-ligne a été modifiée pour analyser simplement les valeurs, pas les de installent.