2011-10-09 15 views
6

¿Es posible seleccionar una parte del texto que está editando y cambiar su color? Sé que es posible crear un tema de color que coloree ciertos tipos de texto (como, por ejemplo, las funciones de colorear en un determinado lenguaje de programación), pero ¿es posible hacer un cambio de color por única vez en una pieza de texto seleccionada en un emacs específico? documento sin crear un tema? gracias por adelantado.Cambiar el color de una pieza de texto específica en emacs sin crear un tema

Respuesta

0

Probar set-background-color, set-foreground-color, set-cursor-color.
Sin embargo, los cambios no se guardarán con el documento.

Nota:
Cuando pruebo esas funciones, no configuran el color de la región a menos que vaya por los menús.

+0

Pude hacer que funcionara, pero solo para todo el documento. Tal vez no estoy seleccionando una región con éxito? Intenté establecer una marca al comienzo de la región que quiero editar y luego mover el cursor al final de la región que quiero, pero la suya no funcionó. Tampoco resaltar con el mouse. ¿Algún consejo para esto? Desafortunadamente, parece que esto no es permanente, por lo que ese es otro problema – Hendeca

6

Un tema no le permite especificar el color del texto arbitrario en ningún caso. Solo describe un conjunto de caras para ser utilizado por font-lock.

Para aplicar una cara de una pieza arbitraria de texto, seleccione el texto , entonces M-:(add-text-properties (region-beginning) (region-end) '(face font-lock-warning-face))

Consulte la sección caras del manual elisp sobre cómo crear una cara.

Emacs también viene con el paquete hi-lock, que puede resaltar expresiones regulares o líneas que contienen expresiones regulares. Consulte manual

+0

Estoy bastante seguro de que no funcionará, ya que 'add-text-properties' no es' interactive'. Podría funcionar con 'M-:' ('eval'). –

+0

Al seleccionar el texto, ¿quiere decir establecer una marca al comienzo del texto y luego mover el cursor hasta el final de la selección? – Hendeca

+0

Sí, eso funciona. Voy a editar para que coincida. –

1

Si está en un búfer que no está controlado por el bloqueo de fuente, puede usar 'facemenu'.

Por ejemplo, resalte un poco de texto, luego con el mouse, presione C-mouse-2. A continuación, puede seleccionar una cara (una combinación de propiedades de texto con un nombre). También puedes elegir colores aleatorios para el fondo o el fondo.

Si Emacs es particularmente viejo, me parece recordar algo similar en M-g.

5

¿qué tal M-x highlight-phrase?

+0

Iba a aceptar, pero me di cuenta de que esto técnicamente solo cambia el color de fondo del texto, no el texto en sí. Tal vez no hay una manera de hacer esto de forma rápida y fácil? – Hendeca

0

Sé que seis años es un tiempo bastante largo, pero me encontré con esta pregunta y, después de una gran cantidad de investigaciones, no encontré nada tan objetivo como lo que eventualmente busqué.

Para colorear por ejemplo, los primeros 200 caracteres en el búfer, ejecute el comando:

(put-text-property 1 200 'face (cons 'foreground-color "red")) 

Si necesita ayuda para ejecutar este comando en emacs, aquí es una posibilidad entre muchas:

  1. Escriba ESC-x eval-expression.
  2. Escriba o pegue el comando anterior en el mini-buffer después de la solicitud.
  3. Presione ENTER.
Cuestiones relacionadas