Deshabilitar el modo de sangría eléctrica solo para un modo (modo látex)

11

No me gusta cómo funciona el modo de sangría eléctrica en modo látex. En todas partes (al menos en todas partes), es genial.

¿Cómo puedo desactivar permanentemente el modo de sangría eléctrica solo para el modo látex, pero mantenerlo en cualquier otro lugar?

Supongo que es un hack de lisp de una línea en mi archivo de configuración, o algo así, pero soy horrible en lisp, así que no puedo entenderlo.

Toby Muhlhofer
fuente

Respuestas:

8

El comando que necesitas es electric-indent-local-mode. Puede utilizar este método para desactivar-guión-modo eléctrico en cualquier tampón llamando de forma manual: M-x electric-indent-local-mode. Esto es una palanca, por lo que volver a llamarlo en el mismo búfer lo vuelve a activar.

Para hacer esto automáticamente desde su archivo de inicio, debe configurar un enlace. Primero, defina el gancho:

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

Luego agréguelo a los ganchos de modo apropiados. Para desactivar el modo de sangría eléctrica para el modo LaTeX proporcionado por AUCTex, use esto:

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

Para el modo de texto predeterminado, use:

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

El mismo patrón se aplica a cualquier otro modo que desee desactivar la sangría eléctrica.

Para más detalles sobre los ganchos de modo, vea el nodo manual incorporado de Emacs [(emacs) Hooks][1]. Puede llegar desde Emacs a través de C-h i r m Hooks <enter>: C-hpara obtener ayuda, iinformación, rleer el manual, el melemento del menú y Hookselegir el elemento del menú. (o puede seguir el enlace de arriba para ver la versión html).

Tyler
fuente
No necesita definir una función adicional: es (add-hook 'LaTeX-mode-hook (lambda () (electric-indent-local-mode -1)))suficiente.
Emil Jeřábek
Es cierto, pero si define una función, puede reutilizarla en múltiples enlaces diferentes sin duplicar el código. También es más fácil eliminar una función definida que una anónima. Eso puede ser útil al depurar
Tyler