Tengo el modo foo y habilitaría el modo bar-minor para ello. Entonces, ¿qué camino es más común y preferible?
UNA
(add-hook 'foo-mode-hook 'bar-minor-mode)
si
(add-hook 'foo-mode-hook (lambda ()
"Turn on `bar-minor-mode' mode."
(bar-minor-mode 1)))
do
(defun bar-minor-mode-on ()
"Turn on `bar-minor-mode' mode."
(interactive)
(bar-minor-mode 1))
(add-hook 'foo-mode-hook 'bar-minor-mode-on)
re
• variante C, pero la función se empujó hacia arriba
mi
• variante C, pero función almacenada en la receta del complemento
hooks
minor-mode
Netsu
fuente
fuente
Respuestas:
Depende de la (s) versión (es) de Emacs que esté utilizando (o de destino). Si está utilizando exclusivamente Emacs 24+, puede usar la variante A de forma segura:
Eso es del archivo NEWS, pero según los comentarios, es una buena práctica usar comillas de función para símbolos de función, así:
Si el código pudiera necesitar ejecutarse bajo Emacs 23 (o anterior), iría con la variante C, ya que personalmente no me gusta ver funciones anónimas en las variables de enlace. (No estoy seguro de entender lo que quieres decir con variantes D y E, mente).
fuente
Aquí hay una forma más de hacerlo que tiene algunas ventajas, suponiendo que esté editando su propia configuración, no un paquete que distribuya.
La ventaja es que todo se almacena en un gancho, por lo que para deshabilitar algunas cosas, no tiene que hacerlo
remove-hook
, sino que debe comentar algunas cosas encustom-foo-hook
y C-M-x.Incluso puede escribir un comando que salte de cualquier modo a su enlace personalizado.
fuente
add-hook
declaraciones para cada modo menor para habilitar. Quería enfatizar que tener una solaadd-hook
declaración es una ventaja.¿Por qué definirías un nuevo comando que hace exactamente lo que
bar-minor-mode
hace?Comenzando con 24.1, todos estos son completamente equivalentes, así que solo use el menos redundante: opción A
fuente