2012-03-19 14 views
8

Estoy usando Emacs desde hace mucho tiempo y lo he personalizado bastante. Incluso he escrito funciones ELisp simples y ahora estoy empezando a usar macros cada vez más. No estoy cerca de un usuario de Emacs conocedor, pero tampoco soy un principiante completo.Emacs: explicación de font-lock

Estoy usando nxhtml, mumamo, dired, ido, combinaciones de teclas personalizadas y tantas cosas que agregué a lo largo de los años que no las recuerdo todas;)

Pero hay algo que realmente nunca entendí: ¿qué es el modo "font-lock" y por qué debería importarme?

Por ejemplo, he leído que nxhtml y nxml, si no recuerdo mal, no use el bloqueo de fuentes. Quizás no entendí bien esa parte, pero de cualquier manera: ¿qué cambia para mí, como usuario?

O tomar, por ejemplo, esta descripción acerca WhiteSpace:

Tenga en cuenta que cuando WhiteSpace está activada, WhiteSpace guarda el estado font-lock, es decir, si la fuente de bloqueo está encendido o apagado. Y WhiteSpace restaura el estado de bloqueo de fuente cuando está apagado. Entonces, si WhiteSpace está encendido y el bloqueo de fuente está desactivado, WhiteSpace también activa font-lock para resaltar los espacios en blanco, pero el bloqueo de fuente se desactivará cuando se desactive el espacio en blanco. Por lo tanto, active font-lock antes de WhiteSpace está activado, si desea que Font-lock continúe después de WhiteSpace está desactivado.

OK, bien. Entiendo que. Pero, ¿qué cambia si font-lock continúa después o no?

Básicamente, simplemente no lo "obtengo", no importa cuánto haya leído sobre el tema.

¡Cualquier ejemplo/explicación sobre qué es "font-lock" en Emacs y por qué me preocupa sería muy bienvenido!

+1

bloqueo de fuente es todo lo relacionado con los efectos aplicados en los personajes para que se vean diferentes de su apariencia normal. La descripción '' whitespace-mode' que está citando le dice que 'whitespace-mode' no viola el código de conducta de los modos menores, que establece que los modos secundarios no deberían molestarse entre sí.A pesar de que 'whitespace-mode' necesita activar el bloqueo de fuente para hacer que los espacios se vean diferentes, recuerda el estado de bloqueo de fuente anterior para volver a colocar todo en su lugar cuando lo desactives. – Francesco

Respuesta

4

Muestra su código con todos los colores diferentes (rojo para comentarios, verde para nombres de clase, etc.). Si está desactivado, obtienes un código en blanco y negro. Abre un código y ejecuta M-x font-lock-mode un par de veces para ver cómo se enciende y apaga.

+0

bien, pero ¿cómo es que algunos modos como nxml o nxhtml dicen que no están usando font-lock y aún muestran cosas en muchos colores diferentes? –

+0

¿Es eso lo que estás viendo? Cuando abro un archivo xml en modo nxml, puedo ver que los colores se encienden y apagan cuando alterno el modo font-lock. –

10

font-lock-mode == sintaxis de colores highligthing. global-font-lock-mode habilita el bloqueo de fuentes para todos y cada uno de los modos en Emacs. La versión anterior de Emacs requería que la habilitara manualmente, una versión más nueva (más de 23 creo) habilita esto de forma predeterminada. No puedo imaginar que muchas personas quieran desactivar esta función, ya que hace que un tipo de contenido (como el código fuente) sea mucho más legible. Todos los modos que utilizan el bloqueo de fuentes se basan en un determinado conjunto de caras - una combinación de propiedades de fuente como tamaño, negrita, subrayado, cursiva y color. Las caras básicos que utilizan la mayoría de los modos son:

font-lock-builtin-face 
font-lock-comment-face 
font-lock-comment-delimiter-face 
font-lock-constant-face 
font-lock-doc-face 
font-lock-doc-string-face 
font-lock-function-name-face 
font-lock-keyword-face 
font-lock-negation-char-face 
font-lock-preprocessor-face 
font-lock-string-face 
font-lock-type-face 
font-lock-variable-name-face 
font-lock-warning-face 

Puede reemplazar fácilmente sus valores si desea ellos (o utilizar un color-tema diferente). Algunos modos también definen caras adicionales.