Désactivation du mode de retrait électrique pour un seul mode (mode latex) uniquement

11

Je n'aime pas le fonctionnement du mode de retrait électrique en mode latex. Partout ailleurs (du moins partout où j'utilise), c'est génial.

Comment puis-je désactiver définitivement le mode de retrait électrique pour le mode latex uniquement, mais le garder partout ailleurs?

Je suppose que c'est un hack lisp d'une ligne dans mon fichier de configuration, ou quelque chose comme ça, mais je suis horrible à lisp, donc je ne peux pas le comprendre.

Toby Muhlhofer
la source

Réponses:

8

La commande dont vous avez besoin est electric-indent-local-mode. Vous pouvez utiliser cette option pour désactiver-indent-mode électrique dans un tampon en appelant manuellement: M-x electric-indent-local-mode. Il s'agit d'une bascule, donc l'appeler à nouveau dans le même tampon le rallume.

Pour ce faire automatiquement à partir de votre fichier init, vous devez configurer un hook. Définissez d'abord le crochet:

(defun remove-electric-indent-mode ()
  (electric-indent-local-mode -1))

Ajoutez-le ensuite aux crochets de mode appropriés. Pour désactiver le mode de retrait électrique pour le mode LaTeX fourni par AUCTex, utilisez ceci:

(add-hook 'LaTeX-mode-hook 'remove-electric-indent-mode)

Pour le texmode par défaut, utilisez:

(add-hook 'tex-mode-hook 'remove-electric-indent-mode)

Le même schéma s'applique à tout autre mode pour lequel vous souhaitez désactiver l'indentation électrique.

Pour plus de détails sur les hooks de mode, consultez le nœud manuel Emacs intégré [(emacs) Hooks][1]. Vous pouvez vous y rendre depuis Emacs via C-h i r m Hooks <enter>: C-hpour obtenir de l'aide, ides informations, rpour lire le manuel, mpour un élément de menu et Hookspour sélectionner l'élément de menu. (ou vous pouvez suivre le lien ci-dessus pour voir la version html).

Tyler
la source
Vous n'avez pas besoin de définir une fonction supplémentaire: (add-hook 'LaTeX-mode-hook (lambda () (electric-indent-local-mode -1)))suffit.
Emil Jeřábek
Certes, mais si vous définissez une fonction, vous pouvez la réutiliser dans plusieurs hooks différents sans dupliquer le code. Il est également plus facile de supprimer une fonction définie qu'une fonction anonyme. Cela peut être utile lors du débogage
Tyler