J'ai foo-mode et activerais le mode barre mineure pour cela. Alors, quelle voie est plus courante et préférable?
UNE
(add-hook 'foo-mode-hook 'bar-minor-mode)
B
(add-hook 'foo-mode-hook (lambda ()
"Turn on `bar-minor-mode' mode."
(bar-minor-mode 1)))
C
(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)
ré
• variante C, mais fonction poussée en amont
E
• variante C, mais fonction stockée dans la recette du plugin
hooks
minor-mode
Netsu
la source
la source
Réponses:
Cela dépend de la ou des versions d'Emacs que vous utilisez (ou ciblez). Si vous utilisez exclusivement Emacs 24+, vous pouvez utiliser en toute sécurité la variante A:
Cela provient du fichier NEWS, mais selon les commentaires, il est recommandé d'utiliser des citations de fonction pour les symboles de fonction, comme suit:
Si le code doit être exécuté sous Emacs 23 (ou version antérieure), je choisirais la variante C, car personnellement je n'aime pas voir les fonctions anonymes dans les variables de hook. (Je ne suis pas sûr de comprendre ce que vous entendez par variantes D & E, l'esprit).
la source
Voici une autre façon de le faire qui présente certains avantages, en supposant que vous modifiez votre propre configuration, pas un package que vous distribuez.
L'avantage est que tout est stocké dans un seul crochet, donc pour désactiver certaines choses, vous n'avez pas à le faire
remove-hook
, mais à la place, commentez certaines choses danscustom-foo-hook
et C-M-x.Vous pouvez même écrire une commande qui passe de n'importe quel mode à son crochet personnalisé.
la source
add-hook
instructions pour chaque mode mineur à activer. Je tenais à souligner qu'avoir une seuleadd-hook
déclaration est un avantage.Pourquoi définiriez-vous une nouvelle commande qui fait exactement ce qui
bar-minor-mode
fait?À partir de la version 24.1, tous ces éléments sont complètement équivalents, il suffit donc d'utiliser la moins redondante: option A
la source