Je dois donner une réponse partielle parce que c'est trop compliqué à comprendre sur place et j'ai déjà perdu mon budget temps.
Face est une propriété de cadre. Un cadre peut afficher plusieurs tampons en même temps. Mode est une propriété de tampon. Vous demandez comment faire varier le visage sur une base par mode. En combinant tout cela, il semble que la question ne peut pas avoir une seule réponse entièrement correcte.
Vous pouvez approximer la réponse souhaitée si vous supposez qu'une trame donnée n'affichera jamais plus d'un tampon. Vous pouvez réellement accomplir cela avec quelque chose comme ceci, mais modifié pour utiliser special-display-regexps et un ensemble de regexps qui correspondent à vos noms de tampons en mode markdown.
(append special-display-buffer-names
'("*VC-log*"
"*Help*"
("*Completions*"
(height . 25)
(font . "8x13"))))
Cependant, ce n'est probablement pas ce que vous voulez. Votre question semble impliquer de changer les propriétés du visage d'une seule image.
Encore une fois en supposant qu'une trame ne montrera jamais plus d'un tampon à la fois, vous pouvez essayer de conseiller le passage à la mémoire tampon. Mais cela pourrait ne pas être suffisamment bas et cela pourrait être trop lent. (Non testé)
(defadvice switch-to-buffer (after switch-to-buffer activate compile)
"change the frame's default face after switch-to-buffer"
(doSomethingToChangePropertiesOfDefaultFace))
Et maintenant ma réelle (incomplète) réponse ...
Une meilleure, bien plus complexe, approche des instructions démarquage mode d'utiliser un nouveau visage pour toutes les régions qui ne sont pas déjà attribué l'un des visages intégrés. Vous pouvez créer un nouveau visage avec copier-face et lui donner des propriétés intéressantes avec set-face- *.
Modifier les paramètres par défaut de la fonction markdown-lock pour remplacer la fonction par défaut font-lock-fontify-region comme décrit dans le bloc de commentaire près de la ligne 946 de font-lock.el qui commence par "Fonctions de fontification".Vous pouvez probablement utiliser une police-lock-default-fontifier région très légèrement modifiée qui fait juste une étape supplémentaire immédiatement après le fait:
(unless font-lock-keywords-only
(font-lock-fontify-syntactically-region beg end loudly))
L'étape supplémentaire parse la région similaire à ce que font-lock-fontify- de façon syntaxique, en divisant la région en sous-régions "intéressantes". Mais cette fois, vous trouvez des sous-régions qui ont la face par défaut et vous mettez la propriété text-text de ces sous-régions sur la nouvelle face que vous avez précédemment créée. Dans tout cela, il semble qu'il ne devrait y avoir que quelques lignes d'elisp dans votre fichier .emacs, plus faire une copie de font-lock-default-fontify-region qui n'a qu'une différence mineure par rapport à l'original (appelez un nouvelle fonction), plus faire une copie de font-lock-fontify-syntaxiquement-region et le modifier pour faire votre enchère (la partie la plus difficile). En fait, si vous "après" conseille font-lock-fontify-syntaxiquement-region alors vous n'avez probablement même pas besoin de modifier font-lock-defaults ou font-lock-default-fontify-region.
S'il existe une variable qui contrôle les faces par défaut, vous pouvez la localiser pour le tampon courant uniquement dans un crochet qui est appelé lors de l'ouverture d'un fichier w/démarque. – jfs
La question est posée de manière générale, puis un exemple spécifique est fait et les réponses tournent autour de cet exemple spécifique. Si vous avez vraiment besoin de "** Définir la police de caractères par défaut d'Emacs **", voir [Utiliser une police différente pour chaque mode majeur - Emacs Stack Exchange] (http://emacs.stackexchange.com/questions/3038/ en utilisant-a-different-font-pour-chaque-majeur-mode/3042 # 3042) –