tengo que dar una respuesta parcial, porque esto es demasiado complicado de averiguar sobre el terreno y que ya me dejó presupuesto de tiempo.
Face es propiedad de un marco. Un marco puede mostrar múltiples búferes al mismo tiempo. El modo es una propiedad de buffer. Usted pregunta cómo variar la cara por modo. Combinando todo esto, parece que la pregunta no puede tener una sola respuesta totalmente correcta.
Puede aproximar la respuesta deseada si supone que un cuadro determinado nunca mostrará más de un búfer. De hecho, puede lograr eso con algo como esto, pero modificado para usar special-display-regexps y un conjunto de expresiones regulares que coincidan con sus nombres de búfer en modo markdown.
(append special-display-buffer-names
'("*VC-log*"
"*Help*"
("*Completions*"
(height . 25)
(font . "8x13"))))
Sin embargo, esto probablemente no es lo que desea. Su pregunta parece implicar cambiar las propiedades de la cara de un solo cuadro.
Nuevamente suponiendo que un cuadro nunca mostrará más de un búfer a la vez, puede intentar avisarle al switch-to-buffer. Pero eso podría no ser de un nivel suficientemente bajo y podría ser demasiado lento. (No probado)
(defadvice switch-to-buffer (after switch-to-buffer activate compile)
"change the frame's default face after switch-to-buffer"
(doSomethingToChangePropertiesOfDefaultFace))
Y ahora mi respuesta real (incompleta) ...
Una mejor, aunque más complicado, enfoque daría instrucciones rebaja en modo de utilizar una nueva cara para todas las regiones que no están ya asignó una de las caras integradas. Puedes crear una nueva cara con cara de copia y darle propiedades interesantes con set-face- *.
Modifique el font-lock-default de markdown-mode para anular la función predeterminada font-lock-fontify-region-function como se describe en el bloque de comentarios cerca de la línea 946 de font-lock.el que comienza con "Funciones de Fontificación".Probablemente se puede utilizar una fuente-lock-default-fontify-región muy ligeramente modificada que hace sólo un paso adicional inmediatamente después de que hace:
(unless font-lock-keywords-only
(font-lock-fontify-syntactically-region beg end loudly))
El paso adicional analiza la región similar a lo que font-lock-fontify- syntactically-region lo hace, rompiendo la región en subregiones "interesantes". Pero esta vez, usted encuentra las subregiones que tienen la cara por defecto y la propiedad de poner texto las regiones a la nueva cara que creó previamente.
En todo esto se siente como debería ser solo un par de líneas de elisp en su archivo .emacs, además de hacer una copia de font-lock-default-fontify-region que tiene solo una pequeña diferencia del original (llamar a uno nueva función), además de hacer una copia de font-lock-fontify-syntactically-region y modificarla para hacer su puja (la parte más difícil).
En realidad, si "después" aconseja font-lock-fontify-syntactically-region, entonces probablemente ni siquiera necesite modificar font-lock-defaults o font-lock-default-fontify-region.
Si hay alguna variable que controla las caras predeterminadas, entonces puede localizarla para el búfer actual solo en un gancho que se llama al abrir un archivo w/markdown. – jfs
La pregunta se realiza de forma general, luego se realiza un ejemplo específico y las respuestas giran en torno a este ejemplo específico. Si realmente necesita "** Configurar la cara de fuente predeterminada de Emacs por modo **", vea [Usando una fuente diferente para cada modo principal - Emacs Stack Exchange] (http://emacs.stackexchange.com/questions/3038/ using-a-different-font-for-each-major-mode/3042 # 3042) –