2010-02-11 25 views
8

He estado experimentando hoy con propiedades de texto en Emacs. Si coloco el cursor en una línea con texto y ejecuto el siguiente código con M-:, la línea se muestra de nuevo en negrita.Cambiar la apariencia del texto en Emacs: las superposiciones funcionan, las propiedades de texto no

(overlay-put 
(make-overlay 
    (line-beginning-position) 
    (line-end-position)) 
'face 'bold) 

Si, sin embargo, acabar con la superposición con (remove-overlays) y ejecutar el siguiente código, no pasa nada (excepto que la palabra "nulo" aparece en el minibúfer).

(put-text-property 
(line-beginning-position) 
(line-end-position) 
'face 'bold) 

Por lo que he espigué hasta ahora, yo esperaría que estos dos fragmentos deben producir los mismos resultados visuales. ¿Por qué no?

+1

Funciona para mí con Emacs 23.1, con texto en un búfer tanto en modo fundamental como en modo de texto. –

+0

Estoy usando 22.1.50.1 en OS X. – Sean

+1

22.1.50 no es una compilación oficial, trataría de obtener un lanzamiento oficial de http://homepage.mac.com/zenitani/emacs-e.html –

Respuesta

4

Cuando font-lock-mode está activado, se anula el atributo face. Trate de font-lock-face lugar:

 
(put-text-property 
(line-beginning-position) 
(line-end-position) 
'font-lock-face 'bold) 
2

ANSI-color.el - "En Emacs, sin embargo, las cosas son un poco diferentes : Cuando la fuente de bloqueo está activo en una memoria intermedia, puede no sólo tiene que añadir cara text-properties al buffer. Font-lock eliminará la cara text-property usando 'font-lock-unfontify-region-function'. Si quiere para insertar las cadenas devueltas por 'ansi-color-apply' en dichos buffers, debe establecer 'font-lock-unfontify-region-function' en `ansi-color-unfontify-region '. Esta función no eliminará todas las propiedades de texto de cara incondicionalmente. Mantendrá la cara tex t-properties si se establece la propiedad 'ansi-color'.

Cuestiones relacionadas