init-file – ¿Cómo "agrupo" los ganchos?

Pregunta:

Hay ciertas cosas como la visualización de espacios en blanco finales, visualización de límites de búfer, delimitadores de colores del arco iris y muchas más que me gustaría habilitar en la mayoría de los modos o, mejor dicho, todos los relacionados con la programación y el texto (porque mostrar espacios finales en, digamos ediff-mode , chocaría con el modo mayor) en lugar de usar un modo menor globalizado con reglas de excepción. Dado que la mayoría de los modos se derivan de prog-mode o text-mode , agregar la función en cuestión tanto a prog-mode-hook como a text-mode-hook funciona, sin embargo, hay suficientes modos que no siguen esta especificación, como css-mode o css-mode LaTeX-mode .

Me gustaría definir un gancho que abarque todos estos modos por el momento para solo agregar funciones a un gancho. Llamémoslo non-special-mode-hook (para distinguirlo del special-mode-hook ). ¿Cómo podría crear un gancho que se ejecute para todos los modos principales para los que está hecho?

Respuesta:

Simplemente agrupe esas configuraciones en una función y agregue esa función a todas las funciones de enlace relevantes:

(defun my-non-special-mode-setup ()
  (setq show-trailing-whitespace t)
  ...)
(dolist (hook '(prog-mode-hook text-mode-hook css-mode-hook ...))
  (add-hook hook 'my-non-special-mode-setup))

Ninguna otra forma de hacer esto sería más concisa: pase lo que pase, en algún lugar tendrá una lista blanca o una lista negra de modos. En la práctica, solo encontrará algunos modos que deben agregarse a la lista, por lo que sugeriría mantener las cosas simples.

En mi propia configuración, utilizo exactamente este truco para unificar la configuración de varios modos orientados a lisp.

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım