2011-11-02 23 views
5

De vez en cuando, Emacs falla al resaltar la sintaxis y el color se vuelve funky en un búfer. ¿Hay alguna manera de forzar a Emacs a "volver a colorear" la sintaxis? Solo prueba? No me importa si toma un momento.How to force emacs recolor

Respuesta

8

Creo que M-x font-lock-fontify-buffer hará lo que está buscando. O seleccione una región y haga M-o M-o (o M-x font-lock-fontify-block).

+0

Gracias Jon! Funcionó muy bien. Sabía que debía haber un poco de vocabulario de Emacs que me faltaba: "Fontify". – sligocki

+0

¡Ningún problema! Me alegro de que fue útil. –

+0

esto no tiene (actualmente) en cuenta los cambios realizados después de cargar un búfer al llamar (por ejemplo, en el búfer * scratch *) font-lock-add-keywords'. Para que estos se apliquen, debe hacer 'M-x modo normal' o' M-x revert-buffer'. – Mark

0

Una vez escribí la siguiente función simple para restablecer el buffer a su modo natural, refentificarlo, llevar la línea donde el cursor está al centro de la pantalla, desactivar la barra de menú, desactivar la barra de herramientas y mover la barra de desplazamiento a la izquierda.

(defun --normal-mode-no-gimmicks() 
    "Enable buffer `normal-mode' and refontify. 
Disable frame menu, toolbar, scrollbars." 
    (interactive) 
    (menu-bar-mode 0) 
    (tool-bar-mode 0) 
    (set-scroll-bar-mode 'left) 
    (toggle-scroll-bar 1) 
    (normal-mode) (recenter-top-bottom) 
    (font-lock-fontify-buffer)) 

Esto puede ser muy útil cuando el modo cambia, Emacs muestra repentinamente la barra de menú o algo más sale mal. Luego solo presiono M-g g para sanarlo.

(global-set-key [?\M-g ?g] '--normal-mode-no-gimmicks) 

yo no sabía nada de M-o M-o; parece que esto podría ser un enlace de clave mejor para esta función.

Cuestiones relacionadas