font-lock-mode is the standard way to have Emacs perform syntax
highlighting in the current buffer. It is enabled by default.
font-lock-mode turned on, different types of text will
appear in different colors. For instance, in a programming mode,
variables will appear in one face, keywords in a second, and comments in
font-lock-mode off within an existing buffer, use
M-x font-lock-mode RET.
Highlighting a buffer with
font-lock-mode can take quite a while,
and cause an annoying delay in display, so several features exist to
work around this.
In Emacs 21 and later, turning on
activates the new Just-In-Time fontification provided by
jit-lock-mode defers the fontification of
portions of buffer until you actually need to see them, and can also
fontify while Emacs is idle. This makes display of the visible portion
of a buffer almost instantaneous. For details about customizing
jit-lock-mode, type C-h f jit-lock-mode RET.
In versions of Emacs before 21, different levels of decoration are
available, from slight to gaudy. More decoration means you need to wait
more time for a buffer to be fontified (or a faster machine). To
control how decorated your buffers should become, set the value of
font-lock-maximum-decoration in your .emacs file, with a
nil value indicating default (usually minimum) decoration, and a
t value indicating the maximum decoration. For the gaudiest
possible look, then, include the line
(setq font-lock-maximum-decoration t)
in your .emacs file. You can also set this variable such that
different modes are highlighted in a different ways; for more
information, see the documentation for
font-lock-maximum-decoration with C-h v (or M-x
Also see the documentation for the function
available by typing C-h f font-lock-mode (M-x
describe-function RET font-lock-mode RET).
To print buffers with the faces (i.e., colors and fonts) intact, use
M-x ps-print-buffer-with-faces or M-x
ps-print-region-with-faces. You will need a way to send text to a
PostScript printer, or a PostScript interpreter such as Ghostscript;
consult the documentation of the variables
ps-lpr-switches for more details.