mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-26 07:33:47 +00:00
*** empty log message ***
This commit is contained in:
parent
46fe917b5a
commit
a40d4712b2
@ -168,14 +168,15 @@ definition that is generated in order to run the advice (@pxref{Combined
|
||||
Definition}). Therefore, the advice expressions can use the argument
|
||||
variables in this list to access argument values.
|
||||
|
||||
This argument list must be compatible with the argument list of the
|
||||
original function, so that it can handle the ways the function is
|
||||
actually called. If more than one piece of advice specifies an argument
|
||||
list, then the first one (the one with the smallest position) found in
|
||||
the list of all classes of advice is used.
|
||||
The argument list used in advice need not be the same as the argument
|
||||
list used in the original function, but must be compatible with it, so
|
||||
that it can handle the ways the function is actually called. If two
|
||||
pieces of advice for a function both specify an argument list, they must
|
||||
specify the same argument list.
|
||||
|
||||
@xref{Argument Access in Advice}, for more information about argument
|
||||
lists and advice.
|
||||
lists and advice, and a more flexible way for advice to access the
|
||||
arguments.
|
||||
|
||||
The remaining elements, @var{flags}, are symbols that specify further
|
||||
information about how to use this piece of advice. Here are the valid
|
||||
|
@ -104,6 +104,12 @@ The functions @code{color-values}, @code{color-defined-p} and
|
||||
Windows cannot be made fixed-width or fixed-height;
|
||||
Emacs will adjust the size of all windows when it needs to.
|
||||
|
||||
@item
|
||||
The string used as the value of the @code{before-string} or
|
||||
@code{after-string} property must contain only characters that display
|
||||
as a single column---control characters, including tabs and newlines,
|
||||
will give strange results.
|
||||
|
||||
@item
|
||||
The minibuffer prompt does not actually appear in content of the
|
||||
minibuffer; it is displayed specially in the minibuffer window.
|
||||
|
@ -73,7 +73,7 @@ is @code{nil} (see below).
|
||||
The following example shows how to change the @code{make-backup-files}
|
||||
variable only in the Rmail buffers and not elsewhere. Setting it
|
||||
@code{nil} stops Emacs from making backups of these files, which may
|
||||
save disk space. (You would put this code in your @file{.emacs} file.)
|
||||
save disk space. (You would put this code in your init file.)
|
||||
|
||||
@smallexample
|
||||
@group
|
||||
|
@ -30,7 +30,7 @@ diary suit your personal tastes.
|
||||
@code{t}, calling up the calendar automatically displays the diary
|
||||
entries for the current date as well. The diary dates appear only if
|
||||
the current date is visible. If you add both of the following lines to
|
||||
your @file{.emacs} file:@refill
|
||||
your init file:@refill
|
||||
|
||||
@example
|
||||
(setq view-diary-entries-initially t)
|
||||
|
@ -2573,15 +2573,15 @@ the commands by accident.
|
||||
The low-level mechanism for disabling a command is to put a
|
||||
non-@code{nil} @code{disabled} property on the Lisp symbol for the
|
||||
command. These properties are normally set up by the user's
|
||||
@file{.emacs} file with Lisp expressions such as this:
|
||||
init file (@pxref{Init File}) with Lisp expressions such as this:
|
||||
|
||||
@example
|
||||
(put 'upcase-region 'disabled t)
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
For a few commands, these properties are present by default and may be
|
||||
removed by the @file{.emacs} file.
|
||||
For a few commands, these properties are present by default (you can
|
||||
remove them in your init file if you wish).
|
||||
|
||||
If the value of the @code{disabled} property is a string, the message
|
||||
saying the command is disabled includes that string. For example:
|
||||
@ -2598,13 +2598,13 @@ programs.
|
||||
|
||||
@deffn Command enable-command command
|
||||
Allow @var{command} to be executed without special confirmation from now
|
||||
on, and (if the user confirms) alter the user's @file{.emacs} file so
|
||||
that this will apply to future sessions.
|
||||
on, and (if the user confirms) alter the user's init file (@pxref{Init
|
||||
File}) so that this will apply to future sessions.
|
||||
@end deffn
|
||||
|
||||
@deffn Command disable-command command
|
||||
Require special confirmation to execute @var{command} from now on, and
|
||||
(if the user confirms) alter the user's @file{.emacs} file so that this
|
||||
(if the user confirms) alter the user's init file so that this
|
||||
will apply to future sessions.
|
||||
@end deffn
|
||||
|
||||
|
@ -137,16 +137,16 @@ enter the debugger.
|
||||
@code{debug-on-error} is @code{nil}.
|
||||
@end defopt
|
||||
|
||||
To debug an error that happens during loading of the @file{.emacs}
|
||||
file, use the option @samp{--debug-init}, which binds
|
||||
@code{debug-on-error} to @code{t} while loading @file{.emacs}, and
|
||||
To debug an error that happens during loading of the init
|
||||
file, use the option @samp{--debug-init}. This binds
|
||||
@code{debug-on-error} to @code{t} while loading the init file., and
|
||||
bypasses the @code{condition-case} which normally catches errors in the
|
||||
init file.
|
||||
|
||||
If your @file{.emacs} file sets @code{debug-on-error}, the effect may
|
||||
not last past the end of loading @file{.emacs}. (This is an undesirable
|
||||
If your init file sets @code{debug-on-error}, the effect may
|
||||
not last past the end of loading the init file. (This is an undesirable
|
||||
byproduct of the code that implements the @samp{--debug-init} command
|
||||
line option.) The best way to make @file{.emacs} set
|
||||
line option.) The best way to make the init file set
|
||||
@code{debug-on-error} permanently is with @code{after-init-hook}, like
|
||||
this:
|
||||
|
||||
|
@ -19,8 +19,9 @@ that Emacs presents to the user.
|
||||
* Overlay Arrow:: Display of an arrow to indicate position.
|
||||
* Temporary Displays:: Displays that go away automatically.
|
||||
* Overlays:: Use overlays to highlight parts of the buffer.
|
||||
* Width:: How wide is a character or string.
|
||||
* Faces:: A face defines a graphics appearance: font, color, etc.
|
||||
* Width:: How wide a character or string is on the screen.
|
||||
* Faces:: A face defines a graphics style for text characters:
|
||||
font, colors, etc.
|
||||
* Display Property:: Enabling special display features.
|
||||
* Images:: Displaying images in Emacs buffers.
|
||||
* Blinking:: How Emacs shows the matching open parenthesis.
|
||||
@ -313,11 +314,11 @@ subsequently make various subsets visible or invisible by changing the
|
||||
value of @code{buffer-invisibility-spec}.
|
||||
|
||||
Controlling visibility with @code{buffer-invisibility-spec} is
|
||||
especially useful in a program to display the list of entries in a data
|
||||
base. It permits the implementation of convenient filtering commands to
|
||||
view just a part of the entries in the data base. Setting this variable
|
||||
is very fast, much faster than scanning all the text in the buffer
|
||||
looking for properties to change.
|
||||
especially useful in a program to display the list of entries in a
|
||||
database. It permits the implementation of convenient filtering
|
||||
commands to view just a part of the entries in the database. Setting
|
||||
this variable is very fast, much faster than scanning all the text in
|
||||
the buffer looking for properties to change.
|
||||
|
||||
@defvar buffer-invisibility-spec
|
||||
This variable specifies which kinds of @code{invisible} properties
|
||||
@ -359,6 +360,7 @@ Add the element @var{element} to @code{buffer-invisibility-spec}
|
||||
@defun remove-from-invisibility-spec element
|
||||
@tindex remove-from-invisibility-spec
|
||||
Remove the element @var{element} from @code{buffer-invisibility-spec}.
|
||||
This does nothing if @var{element} is not in the list.
|
||||
@end defun
|
||||
|
||||
One convention about the use of @code{buffer-invisibility-spec} is
|
||||
@ -446,9 +448,10 @@ lines, or portions of lines, may be made invisible.
|
||||
|
||||
@itemize @bullet
|
||||
@item
|
||||
If the value of @code{selective-display} is @code{t}, then any portion
|
||||
of a line that follows a control-m is not displayed. This is explicit
|
||||
selective display.
|
||||
If the value of @code{selective-display} is @code{t}, then the character
|
||||
control-m marks the start of invisible text; the control-m, and the rest
|
||||
of the line following it, are not displayed. This is explicit selective
|
||||
display.
|
||||
|
||||
@item
|
||||
If the value of @code{selective-display} is a positive integer, then
|
||||
@ -780,7 +783,7 @@ This property controls the way text is displayed---for example, which
|
||||
font and which colors. @xref{Faces}, for more information.
|
||||
|
||||
In the simplest case, the value is a face name. It can also be a list;
|
||||
then each element can be any of these possibilities;
|
||||
then each element can be any of these possibilities:
|
||||
|
||||
@itemize @bullet
|
||||
@item
|
||||
@ -819,8 +822,8 @@ or shorter, higher or lower, wider or narror, or replaced with an image.
|
||||
@kindex help-echo @r{(text property)}
|
||||
If an overlay has a string as its @code{help-echo} property, then when
|
||||
you move the mouse onto the text in the overlay, Emacs displays that
|
||||
string in the echo area, or in the tooltip window. It is available
|
||||
starting in Emacs 21.
|
||||
string in the echo area, or in the tooltip window. This feature is
|
||||
available starting in Emacs 21.
|
||||
|
||||
@item modification-hooks
|
||||
@kindex modification-hooks @r{(overlay property)}
|
||||
@ -880,17 +883,13 @@ visible, temporarily, during the search. @xref{Invisible Text}.
|
||||
@kindex before-string @r{(overlay property)}
|
||||
This property's value is a string to add to the display at the beginning
|
||||
of the overlay. The string does not appear in the buffer in any
|
||||
sense---only on the screen. The string should contain only characters
|
||||
that display as a single column---control characters, including tabs or
|
||||
newlines, will give strange results.
|
||||
sense---only on the screen.
|
||||
|
||||
@item after-string
|
||||
@kindex after-string @r{(overlay property)}
|
||||
This property's value is a string to add to the display at the end of
|
||||
the overlay. The string does not appear in the buffer in any
|
||||
sense---only on the screen. The string should contain only characters
|
||||
that display as a single column---control characters, including tabs or
|
||||
newlines, will give strange results.
|
||||
sense---only on the screen.
|
||||
|
||||
@item evaporate
|
||||
@kindex evaporate @r{(overlay property)}
|
||||
@ -943,14 +942,15 @@ a Lisp object, but ceases to be attached to the buffer it belonged to,
|
||||
and ceases to have any effect on display.
|
||||
|
||||
A deleted overlay is not permanently useless. You can give it
|
||||
a new buffer position by calling @code{move-overlay}.
|
||||
a position in a buffer again by calling @code{move-overlay}.
|
||||
@end defun
|
||||
|
||||
@defun move-overlay overlay start end &optional buffer
|
||||
This function moves @var{overlay} to @var{buffer}, and places its bounds
|
||||
at @var{start} and @var{end}. Both arguments @var{start} and @var{end}
|
||||
must specify buffer positions; they may be integers or markers. If
|
||||
@var{buffer} is omitted, the overlay stays in the same buffer.
|
||||
@var{buffer} is omitted, @var{overlay} stays in the same buffer;
|
||||
if @var{overlay} was deleted, it goes into the current buffer.
|
||||
|
||||
The return value is @var{overlay}.
|
||||
|
||||
@ -1090,8 +1090,9 @@ This face is used for ordinary text.
|
||||
|
||||
@item mode-line
|
||||
@kindex mode-line @r{(face name)}
|
||||
This face is used for mode lines, and for menu bars
|
||||
when toolkit menus are not used.
|
||||
This face is used for mode lines, and for menu bars when toolkit menus
|
||||
are not used---but only if @code{mode-line-inverse-video} is
|
||||
non-@code{nil}.
|
||||
|
||||
@item modeline
|
||||
@kindex modeline @r{(face name)}
|
||||
@ -1102,6 +1103,10 @@ old Emacs versions.
|
||||
@kindex header-line @r{(face name)}
|
||||
This face is used for the header lines of windows that have them.
|
||||
|
||||
@item menu
|
||||
This face controls the display of menus, both their colors and their
|
||||
font. (This works only on certain systems.)
|
||||
|
||||
@item fringe
|
||||
@kindex fringe @r{(face name)}
|
||||
This face controls the colors of window fringes, the thin areas on
|
||||
@ -1129,7 +1134,8 @@ This face is meant to be used for highlighting for various purposes.
|
||||
|
||||
@item trailing-whitespace
|
||||
@kindex trailing-whitespace @r{(face name)}
|
||||
This face is used to display excess whitespace at the end of a line.
|
||||
This face is used to display excess whitespace at the end of a line,
|
||||
if @code{show-trailing-whitespace} is non-@code{nil}.
|
||||
@end table
|
||||
|
||||
In contrast, these faces are provided to change the appearance of text
|
||||
@ -1163,10 +1169,17 @@ This face forces use of a particular fixed-width font.
|
||||
@item variable-patch
|
||||
@kindex variable-patch @r{(face name)}
|
||||
This face forces use of a particular variable-width font. It's
|
||||
reasonable to customize this to use a diffrent variable-width font, if
|
||||
reasonable to customize this to use a different variable-width font, if
|
||||
you like, but you should not make it a fixed-width font.
|
||||
@end table
|
||||
|
||||
@defvar show-trailing-whitespace
|
||||
@tindex show-trailing-whitespace
|
||||
If this variable is non-@code{nil}, Emacs uses the
|
||||
@code{trailing-whitespace} face to display any spaces and tabs at the
|
||||
end of a line.
|
||||
@end defvar
|
||||
|
||||
@node Defining Faces
|
||||
@subsection Defining Faces
|
||||
|
||||
@ -1177,18 +1190,20 @@ emacs, The GNU Emacs Manual}).
|
||||
|
||||
@defmac defface face spec doc [keyword value]...
|
||||
@tindex defface
|
||||
Declare @var{face} as a customizable face that defaults according to
|
||||
@var{spec}. Do not quote the symbol @var{face}. The argument @var{doc}
|
||||
specifies the face documentation.
|
||||
This declares @var{face} as a customizable face that defaults according
|
||||
to @var{spec}. You should not quote the symbol @var{face}. The
|
||||
argument @var{doc} specifies the face documentation. The keywords you
|
||||
can use in @code{defface} are the same ones that are meaningful in both
|
||||
@code{defgroup} and @code{defcustom} (@pxref{Common Keywords}).
|
||||
|
||||
When @code{defface} executes, it defines the face according to
|
||||
@var{spec}, then uses any customizations that were read from the
|
||||
@file{.emacs} file to override that specification.
|
||||
init file (@pxref{Init File}) to override that specification.
|
||||
|
||||
The purpose of @var{spec} is to specify how the face should appear on
|
||||
different kinds of terminals. It should be an alist whose elements have
|
||||
the form @code{(@var{display} @var{atts})}. The element's @sc{car},
|
||||
@var{display}, specifies a class of terminals. The @sc{cdr},
|
||||
the form @code{(@var{display} @var{atts})}. Each element's @sc{car},
|
||||
@var{display}, specifies a class of terminals. The element's second element,
|
||||
@var{atts}, is a list of face attributes and their values; it specifies
|
||||
what the face should look like on that kind of terminal. The possible
|
||||
attributes are defined in the value of @code{custom-face-attributes}.
|
||||
@ -1234,15 +1249,25 @@ frame must match one of the @var{value}s specified for it in
|
||||
@end table
|
||||
@end defmac
|
||||
|
||||
Here's how the standard face @code{region} could be defined
|
||||
with @code{defface}:
|
||||
Here's how the standard face @code{region} is defined:
|
||||
|
||||
@example
|
||||
@group
|
||||
(defface region
|
||||
((((class color) (background dark))
|
||||
(:background "blue"))
|
||||
(t (:background "gray")))
|
||||
"Used for displaying the region.")
|
||||
`((((type tty) (class color))
|
||||
(:background "blue" :foreground "white"))
|
||||
@end group
|
||||
(((type tty) (class mono))
|
||||
(:inverse-video t))
|
||||
(((class color) (background dark))
|
||||
(:background "blue"))
|
||||
(((class color) (background light))
|
||||
(:background "lightblue"))
|
||||
(t (:background "gray")))
|
||||
@group
|
||||
"Basic face for highlighting the region."
|
||||
:group 'basic-faces)
|
||||
@end group
|
||||
@end example
|
||||
|
||||
Internally, @code{defface} uses the symbol property
|
||||
@ -1266,9 +1291,9 @@ as if they had a light background.
|
||||
|
||||
The effect of using a face is determined by a fixed set of @dfn{face
|
||||
attributes}. This table lists all the face attributes, and what they
|
||||
mean. Note that in general, more than one face be specified for a given
|
||||
piece of text; when that happens, the attributes of all the faces are
|
||||
merged to specify how to display the text. @xref{Merging Faces}.
|
||||
mean. Note that in general, more than one face can be specified for a
|
||||
given piece of text; when that happens, the attributes of all the faces
|
||||
are merged to specify how to display the text. @xref{Merging Faces}.
|
||||
|
||||
In Emacs 21, any attribute in a face can have the value
|
||||
@code{unspecified}. This means the face doesn't specify that attribute.
|
||||
@ -1276,14 +1301,17 @@ In face merging, when the first face fails to specify a particular
|
||||
attribute, that means the next face gets a chance. However, the
|
||||
@code{default} face must specify all attributes.
|
||||
|
||||
Some of these font attributes are meaningful only on certain
|
||||
kinds of displays---if your display cannot handle a certain attribute,
|
||||
the attribute is ignored.
|
||||
Some of these font attributes are meaningful only on certain kinds of
|
||||
displays---if your display cannot handle a certain attribute, the
|
||||
attribute is ignored. (The attributes @code{:family}, @code{:width},
|
||||
@code{:height}, @code{:weight}, and @code{:slant} correspond to parts of
|
||||
an X Logical Font Descriptor.)
|
||||
|
||||
@table @code
|
||||
@item :family
|
||||
Font family name, or fontset name (@pxref{Fontsets}). If you specify a
|
||||
font family name, the wild-cards @samp{*} and @samp{?} are allowed.
|
||||
font family name, the wild-card characters @samp{*} and @samp{?} are
|
||||
allowed.
|
||||
|
||||
@item :width
|
||||
Relative proportionate width, also known as the character set width or
|
||||
@ -1293,19 +1321,22 @@ set width. This should be one of the symbols @code{ultra-condensed},
|
||||
@code{extra-expanded}, or @code{ultra-expanded}.
|
||||
|
||||
@item :height
|
||||
Font height, an integer in units of 1/10pt.
|
||||
Font height, an integer in units of 1/10 point.
|
||||
|
||||
@item :weight
|
||||
Font weight---a symbol from this series (from most dense to most faint):
|
||||
@code{ultra-bold}, @code{extra-bold}, @code{bold}, @code{semi-bold},
|
||||
@code{normal}, @code{semi-light}, @code{light}, @code{extra-light},
|
||||
@code{ultra-light}, or else @code{nil} meaning this attribute is not
|
||||
specified.
|
||||
or @code{ultra-light}.
|
||||
|
||||
On a text-only terminal, any weight greater than normal is displayed as
|
||||
extra bright, and any weight less than normal is displayed as
|
||||
half-bright (This is provided the terminal supports the feature.)
|
||||
|
||||
On a text-only terminal, any weight greater than normal is displayed as
|
||||
extra bright, and any weight less than normal is displayed as
|
||||
half-bright (provided the terminal supports the feature).
|
||||
|
||||
@item :slant
|
||||
Font slant---one of the symbols @code{italic}, @code{oblique}, @code{normal},
|
||||
@code{reverse-italic}, or @code{reverse-oblique}.
|
||||
@ -1324,16 +1355,18 @@ Whether or not characters should be displayed in inverse video. The
|
||||
value should be @code{t} (yes) or @code{nil} (no).
|
||||
|
||||
@item :stipple
|
||||
The background stipple, a bitmap name.
|
||||
The background stipple, a bitmap.
|
||||
|
||||
The value can be a string; then is the name of a file of pixmap data.
|
||||
The file is found in the directories listed in the variable
|
||||
@code{x-bitmap-file-path}.
|
||||
The value can be a string; that should be the name of a file containing
|
||||
external-format X bitmap data. The file is found in the directories
|
||||
listed in the variable @code{x-bitmap-file-path}.
|
||||
|
||||
Alternatively, the value can be a list of the form @code{(@var{width}
|
||||
@var{height} @var{data})}. Here, width and height are the size in
|
||||
pixels, and @var{data} is a string containing the raw bits of the
|
||||
bitmap.
|
||||
Alternatively, the value can specify the bitmap directly, with a list of
|
||||
the form @code{(@var{width} @var{height} @var{data})}. Here,
|
||||
@var{width} and @var{height} specify the size in pixels, and @var{data}
|
||||
is a string containing the raw bits of the bitmap, row by row. Each row
|
||||
occupies @math{(@var{width} + 7) / 8} consecutie bytes in the string
|
||||
(which should be a unibyte string for best results).
|
||||
|
||||
If the value is @code{nil}, that means use no stipple pattern.
|
||||
|
||||
@ -1356,8 +1389,7 @@ color. The value is used like that of @code{:underline}.
|
||||
|
||||
@item :box
|
||||
Whether or not a box should be drawn around characters, its color, the
|
||||
width of the box lines, and 3D appearance. See below for the possible
|
||||
values and what they mean.
|
||||
width of the box lines, and 3D appearance.
|
||||
@end table
|
||||
|
||||
Here are the possible values of the @code{:box} attribute, and what
|
||||
@ -1391,12 +1423,12 @@ is used.
|
||||
The attributes @code{:overline}, @code{:strike-through} and
|
||||
@code{:box} are new in Emacs 21. The attributes @code{:family},
|
||||
@code{:height}, @code{:width}, @code{:weight}, @code{:slant} are also
|
||||
new, previous versions had another way to specify some of the same
|
||||
information.
|
||||
new; previous versions used the following attributes, now semi-obsolete,
|
||||
to specify some of the same information:
|
||||
|
||||
@table @code
|
||||
@item :font
|
||||
This attribute specified the font name.
|
||||
This attribute specifies the font name.
|
||||
|
||||
@item :bold
|
||||
A non-@code{nil} value specifies a bold font.
|
||||
@ -1410,11 +1442,9 @@ even though they are not real face attributes. Here is what that does:
|
||||
|
||||
@table @code
|
||||
@item :font
|
||||
@code{:font} is not really a font attribute, but you can use it in
|
||||
@code{set-face-attribute} to specify several attributes at once. You
|
||||
specify an X font name as the value, and based on this font name, and
|
||||
it sets the attributes @code{:family}, @code{:width}, @code{:height},
|
||||
@code{:weight}, and @code{:slant} according to the font name.
|
||||
You can specify an X font name as the ``value'' of this ``attribute'';
|
||||
that sets the @code{:family}, @code{:width}, @code{:height},
|
||||
@code{:weight}, and @code{:slant} attributes according to the font name.
|
||||
|
||||
If the value is a pattern with wildcards, the first font that matches
|
||||
the pattern is used to set these attributes.
|
||||
@ -1433,6 +1463,12 @@ This variable specifies a list of directories for searching
|
||||
for bitmap files, for the @code{:stipple} attribute.
|
||||
@end defvar
|
||||
|
||||
@defun pixmap-spec-p object
|
||||
This returns @code{t} if @var{object} is a valid bitmap
|
||||
specification, suitable for use with @code{:stipple}.
|
||||
It returns @code{nil} otherwise.
|
||||
@end defun
|
||||
|
||||
@node Attribute Functions
|
||||
@subsection Face Attribute Functions
|
||||
|
||||
@ -1449,7 +1485,7 @@ the attribute for all frames, and the defaults for new frames.
|
||||
|
||||
The extra arguments @var{arguments} specify the attributes to set, and
|
||||
the values for them. They should consist of alternating attribute names
|
||||
(such as @code{:family} or @code{:underline} and corresponding values.
|
||||
(such as @code{:family} or @code{:underline}) and corresponding values.
|
||||
Thus,
|
||||
|
||||
@example
|
||||
@ -1481,7 +1517,8 @@ For example,
|
||||
@end example
|
||||
@end defun
|
||||
|
||||
For older Emacs versions, you can these functions to set
|
||||
The functions above did not exist before Emacs 21. For compatibility
|
||||
with older Emacs versions, you can use the following functions to set
|
||||
and examine the face attributes which existed in those versions.
|
||||
|
||||
@defun set-face-foreground face color &optional frame
|
||||
@ -1547,6 +1584,8 @@ This function inverts the @code{:inverse-video} attribute of face
|
||||
|
||||
These functions examine the attributes of a face. If you don't
|
||||
specify @var{frame}, they refer to the default data for new frames.
|
||||
They return the symbol @code{unspecified} if the face doesn't define any
|
||||
value for that attribute.
|
||||
|
||||
@defun face-foreground face &optional frame
|
||||
@defunx face-background face &optional frame
|
||||
@ -1798,15 +1837,9 @@ same attributes for display.
|
||||
|
||||
@defun face-differs-from-default-p face &optional frame
|
||||
This returns @code{t} if the face @var{face} displays differently from
|
||||
the default face. A face is considered to be ``the same'' as the normal
|
||||
face if each attribute is either the same as that of the default face or
|
||||
@code{nil} (meaning to inherit from the default).
|
||||
@end defun
|
||||
|
||||
@tindex frame-update-face-colors
|
||||
@defun frame-update-face-colors frame
|
||||
This function updates the way faces display on @var{frame}, for a change
|
||||
in @var{frame}'s foreground or background color.
|
||||
the default face. A face is considered to be ``the same'' as the
|
||||
default face if each attribute is either the same as that of the default
|
||||
face, or unspecified (meaning to inherit from the default).
|
||||
@end defun
|
||||
|
||||
@node Auto Faces
|
||||
@ -2026,18 +2059,22 @@ field.
|
||||
@cindex display specification
|
||||
@kindex display @r{(text property)}
|
||||
|
||||
The @code{display} text property is used to insert images into text,
|
||||
and also control other aspects of how text displays. These features are
|
||||
available starting in Emacs 21. The value of the @code{display}
|
||||
property should be a display specification, or a list or vector
|
||||
containing several display specifications. The rest of this section
|
||||
describes several kinds of display specifications and what they mean.
|
||||
The @code{display} text property (or overlay property) is used to
|
||||
insert images into text, and also control other aspects of how text
|
||||
displays. These features are available starting in Emacs 21. The value
|
||||
of the @code{display} property should be a display specification, or a
|
||||
list or vector containing several display specifications. The rest of
|
||||
this section describes several kinds of display specifications and what
|
||||
they mean.
|
||||
|
||||
@menu
|
||||
* Specified Space::
|
||||
* Other Display Specs::
|
||||
* Display Margins::
|
||||
* Conditional Display::
|
||||
* Specified Space:: Displaying one space with a specified width.
|
||||
* Other Display Specs:: Displaying an image; magnifying text; moving it
|
||||
up or down on the page; adjusting the width
|
||||
of spaces within text.
|
||||
* Display Margins:: Displaying text or images to the side of the main text.
|
||||
* Conditional Display:: Making any of the above features conditional
|
||||
depending on some Lisp expression.
|
||||
@end menu
|
||||
|
||||
@node Specified Space
|
||||
@ -2047,10 +2084,12 @@ describes several kinds of display specifications and what they mean.
|
||||
@cindex variable-width spaces
|
||||
|
||||
To display a space of specified width and/or height, use a display
|
||||
specification of the form @code{(space @var{props})}, where @var{props}
|
||||
is a property list (see below). You can put this property on one or
|
||||
more consecutive characters; a space of the specified height and width
|
||||
is displayed in place of @emph{all} of those characters.
|
||||
specification of the form @code{(space . @var{props})}, where
|
||||
@var{props} is a property list (a list of alternating properties and
|
||||
values). You can put this property on one or more consecutive
|
||||
characters; a space of the specified height and width is displayed in
|
||||
place of @emph{all} of those characters. These are the properties you
|
||||
can use to specify the weight of the space:
|
||||
|
||||
@table @code
|
||||
@item :width @var{width}
|
||||
@ -2066,7 +2105,8 @@ character, multiplied by @var{factor}.
|
||||
|
||||
@item :align-to @var{hpos}
|
||||
Specifies that the space should be wide enough to reach @var{hpos}. The
|
||||
value @var{hpos} is measured in units of the normal character width.
|
||||
value @var{hpos} is measured in units of the normal character width. It
|
||||
may be an interer or a floating point number.
|
||||
@end table
|
||||
|
||||
Exactly one of the above properties should be used. You can also
|
||||
@ -2083,8 +2123,9 @@ of the text having this display specification by @var{factor}.
|
||||
|
||||
@item :ascent @var{ascent}
|
||||
Specifies that @var{ascent} percent of the height of the space should be
|
||||
considered as the ascent of the space. The value of @var{ascent} must
|
||||
be a non-negative number no greater than 100.
|
||||
considered as the ascent of the space---that is, the part above the
|
||||
baseline. The value of @var{ascent} must be a non-negative number no
|
||||
greater than 100.
|
||||
@end table
|
||||
|
||||
You should not use both @code{:height} and @code{:relative-height}
|
||||
@ -2100,10 +2141,11 @@ display specification, it means to display the image instead of the text
|
||||
that has the display specification.
|
||||
|
||||
@item (space-width @var{factor})
|
||||
This display specification affects all the spaces in the text that has
|
||||
the specification. It displays all of these spaces @var{factor} times
|
||||
as wide as normal. The element @var{factor} should be an integer or
|
||||
float.
|
||||
This display specification affects all the space characters within the
|
||||
text that has the specification. It displays all of these spaces
|
||||
@var{factor} times as wide as normal. The element @var{factor} should
|
||||
be an integer or float. Characters other than spaces are not affected
|
||||
at all; in particular, this has no effect on tab characters.
|
||||
|
||||
@item (height @var{height})
|
||||
This display specification makes the text taller or shorter.
|
||||
@ -2112,8 +2154,10 @@ Here are the possibilities for @var{height}:
|
||||
@table @asis
|
||||
@item @code{(+ @var{n})}
|
||||
This means to use a font that is @var{n} steps larger. A ``step'' is
|
||||
defined by the set of available fonts; each size for which a font is
|
||||
available counts as a step. @var{n} should be an integer.
|
||||
defined by the set of available fonts---specifically, those that match
|
||||
what was otherwise specified for this text, in all attributes except
|
||||
height. Each size for which a suitable font is available counts as
|
||||
another step. @var{n} should be an integer.
|
||||
|
||||
@item @code{(- @var{n})}
|
||||
This means to use a font that is @var{n} steps smaller.
|
||||
@ -2237,15 +2281,15 @@ supported in the current configuration.
|
||||
@end defvar
|
||||
|
||||
@menu
|
||||
* Image Descriptors::
|
||||
* XBM Images::
|
||||
* XPM Images::
|
||||
* GIF Images::
|
||||
* Postscript Images::
|
||||
* Other Image Types::
|
||||
* Defining Images::
|
||||
* Showing Images::
|
||||
* Image Cache::
|
||||
* Image Descriptors:: How to specify an image for use in @code{:display}.
|
||||
* XBM Images:: Special features for XBM format.
|
||||
* XPM Images:: Special features for XPM format.
|
||||
* GIF Images:: Special features for GIF format.
|
||||
* Postscript Images:: Special features for Postscript format.
|
||||
* Other Image Types:: Various other formats are supported.
|
||||
* Defining Images:: Convenient ways to define an image for later use.
|
||||
* Showing Images:: Convenient ways to display an image once it is defined.
|
||||
* Image Cache:: Internal mechanisms of image display.
|
||||
@end menu
|
||||
|
||||
@node Image Descriptors
|
||||
@ -2507,10 +2551,11 @@ Each argument in @var{specs} has the form of a property list, and each
|
||||
one should specify at least the @code{:type} property and the
|
||||
@code{:file} property. Here is an example:
|
||||
|
||||
@smallexample
|
||||
(defimage test-image ((:type xpm :file \"~/test1.xpm\")
|
||||
(:type xbm :file \"~/test1.xbm\")))"
|
||||
@end smallexample
|
||||
@example
|
||||
(defimage test-image
|
||||
'((:type xpm :file "~/test1.xpm")
|
||||
(:type xbm :file "~/test1.xbm")))
|
||||
@end example
|
||||
|
||||
@code{defimage} tests each argument, one by one, to see if it is
|
||||
usable---that is, if the type is supported and the file exists. The
|
||||
@ -2528,11 +2573,12 @@ as @code{nil}.
|
||||
property yourself, but it is easier to use the functions in this
|
||||
section.
|
||||
|
||||
@defun insert-image image &optional area
|
||||
@defun insert-image image string &optional area
|
||||
This function inserts @var{image} in the current buffer at point. The
|
||||
value @var{image} should be an image descriptor; it could be a value
|
||||
returned by @code{create-image}, or the value of a symbol defined with
|
||||
@code{defimage}.
|
||||
@code{defimage}. The argument @var{string} specifies the text to put in
|
||||
the buffer to hold the image.
|
||||
|
||||
The argument @var{area} specifies whether to put the image in a margin.
|
||||
If it is @code{left-margin}, the image appears in the left margin;
|
||||
@ -2540,15 +2586,16 @@ If it is @code{left-margin}, the image appears in the left margin;
|
||||
@code{nil} or omitted, the image is displayed at point within the
|
||||
buffer's text.
|
||||
|
||||
Internally, this function inserts an @samp{x} in the buffer, and gives
|
||||
it a @code{display} property which specifies this image. @xref{Display
|
||||
Internally, this function inserts @var{string} in the buffer, and gives
|
||||
it a @code{display} property which specifies @var{image}. @xref{Display
|
||||
Property}.
|
||||
@end defun
|
||||
|
||||
@defun put-image image pos &optional area
|
||||
@defun put-image image pos string &optional area
|
||||
This function puts image @var{image} in front of @var{pos} in the
|
||||
current buffer. The argument @var{pos} should be an integer or a
|
||||
marker. It specifies the buffer position where the image should appear.
|
||||
The argument @var{string} specifies the text that should hold the image.
|
||||
|
||||
The argument @var{image} must be an image descriptor, perhaps returned
|
||||
by @code{create-image} or stored by @code{defimage}.
|
||||
@ -2671,14 +2718,14 @@ default is @code{nil}.
|
||||
@end defopt
|
||||
|
||||
@defopt mode-line-inverse-video
|
||||
This variable controls the use of inverse video for mode lines. If it
|
||||
is non-@code{nil}, then mode lines are displayed in inverse video.
|
||||
Otherwise, mode lines are displayed normally, just like text. The
|
||||
default is @code{t}.
|
||||
This variable controls the use of inverse video for mode lines and menu
|
||||
bars. If it is non-@code{nil}, then these lines are displayed in
|
||||
inverse video. Otherwise, they lines are displayed normally, just like
|
||||
other text. The default is @code{t}.
|
||||
|
||||
For window frames, this displays mode lines using the face named
|
||||
@code{modeline}, which is normally the inverse of the default face
|
||||
unless you change it.
|
||||
For window frames, this feature actually applies the face named
|
||||
@code{mode-line}; that face is normally set up as the inverse of the
|
||||
default face, unless you change it.
|
||||
@end defopt
|
||||
|
||||
@node Usual Display
|
||||
@ -2759,9 +2806,10 @@ buffers that do not override it. @xref{Default Value}.
|
||||
|
||||
@defopt tab-width
|
||||
The value of this variable is the spacing between tab stops used for
|
||||
displaying tab characters in Emacs buffers. The default is 8. Note
|
||||
that this feature is completely independent of the user-settable tab
|
||||
stops used by the command @code{tab-to-tab-stop}. @xref{Indent Tabs}.
|
||||
displaying tab characters in Emacs buffers. The value is in units of
|
||||
columns, and the default is 8. Note that this feature is completely
|
||||
independent of the user-settable tab stops used by the command
|
||||
@code{tab-to-tab-stop}. @xref{Indent Tabs}.
|
||||
@end defopt
|
||||
|
||||
@node Display Tables
|
||||
@ -3014,7 +3062,9 @@ capability (@samp{vb}).
|
||||
@defvar ring-bell-function
|
||||
@tindex ring-bell-function
|
||||
If this is non-@code{nil}, it specifies how Emacs should ``ring the
|
||||
bell.'' Its value should be a function of no arguments.
|
||||
bell.'' Its value should be a function of no arguments. If this is
|
||||
non-@code{nil}, it takes precedence over the @code{visible-bell}
|
||||
variable.
|
||||
@end defvar
|
||||
|
||||
@node Window Systems
|
||||
@ -3047,7 +3097,7 @@ Emacs is using a character-based terminal.
|
||||
@defvar window-setup-hook
|
||||
This variable is a normal hook which Emacs runs after handling the
|
||||
initialization files. Emacs runs this hook after it has completed
|
||||
loading your @file{.emacs} file, the default initialization file (if
|
||||
loading your init file, the default initialization file (if
|
||||
any), and the terminal-specific Lisp code, and running the hook
|
||||
@code{term-setup-hook}.
|
||||
|
||||
|
@ -72,7 +72,7 @@ instead of in the original English.
|
||||
|
||||
@titlepage
|
||||
@title GNU Emacs Lisp Reference Manual
|
||||
@subtitle For Emacs Version 20.4
|
||||
@subtitle For Emacs Version 21
|
||||
@c The edition number appears in several places in this file
|
||||
@c and also in the file intro.texi.
|
||||
@subtitle Revision 2.6, September 1999
|
||||
@ -179,8 +179,7 @@ Reference Manual, corresponding to GNU Emacs version 21.1.
|
||||
* Processes:: Running and communicating with subprocesses.
|
||||
* System Interface:: Getting the user id, system type, environment
|
||||
variables, and other such things.
|
||||
* Display:: Parameters controlling screen usage.
|
||||
The bell. Waiting for input.
|
||||
* Display:: Features for controlling the screen display.
|
||||
* Calendar:: Customizing the calendar and diary.
|
||||
|
||||
Appendices
|
||||
@ -197,7 +196,7 @@ Appendices
|
||||
* Index:: Index including concepts, functions, variables,
|
||||
and other terms.
|
||||
|
||||
* New Symbols:: New functions and variables in Emacs 20.
|
||||
* New Symbols:: New functions and variables in Emacs 21.
|
||||
|
||||
--- The Detailed Node Listing ---
|
||||
|
||||
@ -248,7 +247,7 @@ Programming Types
|
||||
* Integer Type:: Numbers without fractional parts.
|
||||
* Floating Point Type:: Numbers with fractional parts and with a large range.
|
||||
* Character Type:: The representation of letters, numbers and
|
||||
control characters.
|
||||
control characters.
|
||||
* Sequence Type:: Both lists and arrays are classified as sequences.
|
||||
* Cons Cell Type:: Cons cells, and lists (which are made from cons cells).
|
||||
* Array Type:: Arrays include strings and vectors.
|
||||
@ -262,7 +261,7 @@ Programming Types
|
||||
* Primitive Function Type:: A function written in C, callable from Lisp.
|
||||
* Byte-Code Type:: A function written in Lisp, then compiled.
|
||||
* Autoload Type:: A type used for automatically loading seldom-used
|
||||
functions.
|
||||
functions.
|
||||
|
||||
List Type
|
||||
|
||||
@ -554,7 +553,7 @@ Keymaps
|
||||
or for use from the terminal.
|
||||
* Active Keymaps:: Each buffer has a local keymap
|
||||
to override the standard (global) bindings.
|
||||
Each minor mode can also override them.
|
||||
Each minor mode can also override them.
|
||||
* Key Lookup:: How extracting elements from keymaps works.
|
||||
* Functions for Key Lookup:: How to request key lookup.
|
||||
* Changing Key Bindings:: Redefining a key in a keymap.
|
||||
@ -964,6 +963,7 @@ Object Internals
|
||||
|
||||
@c REMOVE this: include non-hacker.texi
|
||||
|
||||
@include anti.texi
|
||||
@include tips.texi
|
||||
@include internals.texi
|
||||
@include errors.texi
|
||||
|
@ -217,7 +217,7 @@ doesn't change.
|
||||
@subsection Initial Frame Parameters
|
||||
|
||||
You can specify the parameters for the initial startup frame
|
||||
by setting @code{initial-frame-alist} in your @file{.emacs} file.
|
||||
by setting @code{initial-frame-alist} in your init file (@pxref{Init File}).
|
||||
|
||||
@defvar initial-frame-alist
|
||||
This variable's value is an alist of parameter values used when creating
|
||||
@ -229,7 +229,7 @@ Each element has the form:
|
||||
(@var{parameter} . @var{value})
|
||||
@end example
|
||||
|
||||
Emacs creates the initial frame before it reads your @file{~/.emacs}
|
||||
Emacs creates the initial frame before it reads your init
|
||||
file. After reading that file, Emacs checks @code{initial-frame-alist},
|
||||
and applies the parameter settings in the altered value to the already
|
||||
created initial frame.
|
||||
|
@ -99,7 +99,9 @@ referenced anywhere else); if a particular value does get collected, the
|
||||
corresponding association is removed from the hash table.
|
||||
|
||||
The default for @var{weak} is @code{nil}, so that all keys and values
|
||||
referenced in the hash table are preserved from garbage collection.
|
||||
referenced in the hash table are preserved from garbage collection. If
|
||||
@var{weak} is @code{t}, neither keys nor values are protected (that is,
|
||||
both are weak).
|
||||
|
||||
@item :size @var{size}
|
||||
This specifies a hint for how many associations you plan to store in the
|
||||
@ -115,10 +117,11 @@ When you add an association to a hash table and the table is ``full,''
|
||||
it grows automatically. This value specifies how to make the hash table
|
||||
larger, at that time.
|
||||
|
||||
If @var{rehash-size} is an integer, it had better be positive, and the
|
||||
hash table grows by adding that much to the size. If @var{rehash-size}
|
||||
is a floating point number, it had better be greater than 1, and the
|
||||
hash table grows by multiplying the old size by that number.
|
||||
If @var{rehash-size} is an integer, it should be positive, and the hash
|
||||
table grows by adding that much to the nominal size. If
|
||||
@var{rehash-size} is a floating point number, it had better be greater
|
||||
than 1, and the hash table grows by multiplying the old size by that
|
||||
number.
|
||||
|
||||
The default value is 1.5.
|
||||
|
||||
@ -278,7 +281,8 @@ This function returns the actual number of entries in @var{table}.
|
||||
|
||||
@tindex hash-table-rehash-test
|
||||
@defun hash-table-rehash-test table
|
||||
This returns the test @var{table} uses to hash and compare keys---see
|
||||
This returns the @var{test} value that was given when @var{table} was
|
||||
created, to specify how to hash and compare keys. See
|
||||
@code{make-hash-table} (@pxref{Creating Hash}).
|
||||
@end defun
|
||||
|
||||
|
@ -458,8 +458,8 @@ or experiment to learn something not covered in the manual, then perhaps
|
||||
the manual should be fixed. Please let us know.
|
||||
|
||||
@iftex
|
||||
As you use the manual, we ask that you mark pages with corrections so
|
||||
you can later look them up and send them in. If you think of a simple,
|
||||
As you use this manual, we ask that you mark pages with corrections so
|
||||
you can later look them up and send them to us. If you think of a simple,
|
||||
real-life example for a function or group of functions, please make an
|
||||
effort to write it up and send it in. Please reference any comments to
|
||||
the chapter name, section name, and function name, as appropriate, since
|
||||
@ -474,7 +474,7 @@ find them. If you think of a simple, real life example for a function
|
||||
or group of functions, please make an effort to write it up and send it
|
||||
in. Please reference any comments to the node name and function or
|
||||
variable name, as appropriate. Also state the number of the edition
|
||||
which you are criticizing.
|
||||
you are criticizing.
|
||||
@end ifinfo
|
||||
|
||||
Please mail comments and corrections to
|
||||
@ -924,7 +924,7 @@ Richard M. Stallman and Chris Welty, the volunteers of the GNU manual
|
||||
group, in an effort extending over several years. Robert J. Chassell
|
||||
helped to review and edit the manual, with the support of the Defense
|
||||
Advanced Research Projects Agency, ARPA Order 6082, arranged by Warren
|
||||
A. Hunt, Jr. of Computational Logic, Inc.
|
||||
A. Hunt, Jr.@: of Computational Logic, Inc.
|
||||
|
||||
Corrections were supplied by Karl Berry, Jim Blandy, Bard Bloom,
|
||||
Stephane Boucher, David Boyes, Alan Carroll, Richard Davis, Lawrence
|
||||
@ -935,6 +935,6 @@ Ida, Dan Jacobson, Jak Kirman, Bob Knighten, Frederick M. Korz, Joe
|
||||
Lammens, Glenn M. Lewis, K. Richard Magill, Brian Marick, Roland
|
||||
McGrath, Skip Montanaro, John Gardiner Myers, Thomas A. Peterson,
|
||||
Francesco Potorti, Friedrich Pukelsheim, Arnold D. Robbins, Raul
|
||||
Rockwell, Per Starback, Shinichirou Sugou, Kimmo Suominen, Edward Tharp,
|
||||
Rockwell, Per Starb@"ack, Shinichirou Sugou, Kimmo Suominen, Edward Tharp,
|
||||
Bill Trost, Rickard Westman, Jean White, Matthew Wilding, Carl Witty,
|
||||
Dale Worley, Rusty Wright, and David D. Zuhn.
|
||||
|
@ -620,9 +620,9 @@ enables or disables a minor mode. @xref{Keymaps and Minor Modes}.
|
||||
|
||||
Note that elements of @code{minor-mode-map-alist} do not have the same
|
||||
structure as elements of @code{minor-mode-alist}. The map must be the
|
||||
@sc{cdr} of the element; a list with the map as the @sc{cadr} will not
|
||||
do. The @sc{cadr} can be either a keymap (a list) or a symbol
|
||||
whose function definition is a keymap.
|
||||
@sc{cdr} of the element; a list with the map as the second element will
|
||||
not do. The @sc{cdr} can be either a keymap (a list) or a symbol whose
|
||||
function definition is a keymap.
|
||||
|
||||
When more than one minor mode keymap is active, their order of priority
|
||||
is the order of @code{minor-mode-map-alist}. But you should design
|
||||
@ -1224,8 +1224,8 @@ Dired mode is set up:
|
||||
This section describes some convenient interactive interfaces for
|
||||
changing key bindings. They work by calling @code{define-key}.
|
||||
|
||||
People often use @code{global-set-key} in their @file{.emacs} file for
|
||||
simple customization. For example,
|
||||
People often use @code{global-set-key} in their init files
|
||||
(@pxref{Init File}) for simple customization. For example,
|
||||
|
||||
@smallexample
|
||||
(global-set-key "\C-x\C-\\" 'next-line)
|
||||
@ -1658,7 +1658,7 @@ currently used by Emacs).
|
||||
|
||||
@item :button (@var{type} . @var{selected})
|
||||
This property provides a way to define radio buttons and toggle buttons.
|
||||
The @sc{car}, @var{type}, says which: is should be @code{:toggle} or
|
||||
The @sc{car}, @var{type}, says which: it should be @code{:toggle} or
|
||||
@code{:radio}. The @sc{cdr}, @var{selected}, should be a form; the
|
||||
result of evaluating it says whether this button is currently selected.
|
||||
|
||||
|
@ -192,8 +192,9 @@ export EMACSLOADPATH
|
||||
EMACSLOADPATH=.:/user/bil/emacs:/usr/local/share/emacs/20.3/lisp
|
||||
@end smallexample
|
||||
|
||||
Here is an example of code you can place in a @file{.emacs} file to add
|
||||
several directories to the front of your default @code{load-path}:
|
||||
Here is an example of code you can place in your init file (@pxref{Init
|
||||
File}) to add several directories to the front of your default
|
||||
@code{load-path}:
|
||||
|
||||
@smallexample
|
||||
@group
|
||||
|
@ -54,9 +54,9 @@ the old one to serve two purposes, since it may become harder to use and
|
||||
maintain. Instead, copy and rename an existing major mode definition
|
||||
and alter the copy---or define a @dfn{derived mode} (@pxref{Derived
|
||||
Modes}). For example, Rmail Edit mode, which is in
|
||||
@file{emacs/lisp/rmailedit.el}, is a major mode that is very similar to
|
||||
Text mode except that it provides three additional commands. Its
|
||||
definition is distinct from that of Text mode, but was derived from it.
|
||||
@file{emacs/lisp/mail/rmailedit.el}, is a major mode that is very similar to
|
||||
Text mode except that it provides two additional commands. Its
|
||||
definition is distinct from that of Text mode, but uses that of Text mode.
|
||||
|
||||
Rmail Edit mode offers an example of changing the major mode
|
||||
temporarily for a buffer, so it can be edited in a different way (with
|
||||
@ -73,8 +73,9 @@ Editing}.
|
||||
The standard GNU Emacs Lisp library directory tree contains the code
|
||||
for several major modes, in files such as @file{text-mode.el},
|
||||
@file{texinfo.el}, @file{lisp-mode.el}, @file{c-mode.el}, and
|
||||
@file{rmail.el}. You can study these libraries to see how modes are
|
||||
written. Text mode is perhaps the simplest major mode aside from
|
||||
@file{rmail.el}. They are found in various subdirectories of the
|
||||
@file{lisp} directory. You can study these libraries to see how modes
|
||||
are written. Text mode is perhaps the simplest major mode aside from
|
||||
Fundamental mode. Rmail mode is a complicated and specialized mode.
|
||||
|
||||
@menu
|
||||
@ -210,8 +211,10 @@ variable local to every buffer in which it is subsequently set, which
|
||||
would affect buffers that do not use this mode. It is undesirable for a
|
||||
mode to have such global effects. @xref{Buffer-Local Variables}.
|
||||
|
||||
It's OK to use @code{make-variable-buffer-local}, if you wish, for a
|
||||
variable used only within a single Lisp package.
|
||||
With rare exceptions, the only reasonable way to use use
|
||||
@code{make-variable-buffer-local} in a Lisp package is for a variable
|
||||
which is used only within that package. Using it on a variable used by
|
||||
other packages would interfere with them.
|
||||
|
||||
@item
|
||||
@cindex mode hook
|
||||
@ -258,10 +261,9 @@ autoload, you should add this element in the same file that calls
|
||||
file that contains the mode definition. @xref{Auto Major Mode}.
|
||||
|
||||
@item
|
||||
@cindex @file{.emacs} customization
|
||||
In the documentation, you should provide a sample @code{autoload} form
|
||||
and an example of how to add to @code{auto-mode-alist}, that users can
|
||||
include in their @file{.emacs} files.
|
||||
include in their init files (@pxref{Init File}).
|
||||
|
||||
@item
|
||||
@cindex mode loading
|
||||
@ -300,11 +302,15 @@ the conventions listed above:
|
||||
@end group
|
||||
|
||||
@group
|
||||
(defvar text-mode-map nil) ; @r{Create a mode-specific keymap.}
|
||||
(defvar text-mode-map nil ; @r{Create a mode-specific keymap.}
|
||||
"Keymap for Text mode.
|
||||
Many other modes, such as Mail mode, Outline mode and Indented Text mode,
|
||||
inherit all the commands defined in this map.")
|
||||
|
||||
(if text-mode-map
|
||||
() ; @r{Do not change the keymap if it is already set up.}
|
||||
(setq text-mode-map (make-sparse-keymap))
|
||||
(define-key text-mode-map "\e\t" 'ispell-complete-word)
|
||||
(define-key text-mode-map "\t" 'indent-relative)
|
||||
(define-key text-mode-map "\es" 'center-line)
|
||||
(define-key text-mode-map "\eS" 'center-paragraph))
|
||||
@ -334,6 +340,8 @@ Turning on text-mode runs the hook `text-mode-hook'."
|
||||
(setq paragraph-start (concat "[ \t]*$\\|" page-delimiter))
|
||||
(make-local-variable 'paragraph-separate)
|
||||
(setq paragraph-separate paragraph-start)
|
||||
(make-local-variable 'indent-line-function)
|
||||
(setq indent-line-function 'indent-relative-maybe)
|
||||
@end group
|
||||
@group
|
||||
(setq mode-name "Text")
|
||||
@ -422,6 +430,7 @@ rest of @code{lisp-mode-variables}.
|
||||
@group
|
||||
(make-local-variable 'comment-indent-function)
|
||||
(setq comment-indent-function 'lisp-comment-indent))
|
||||
@dots{}
|
||||
@end group
|
||||
@end smallexample
|
||||
|
||||
@ -642,7 +651,7 @@ file in the proper mode according to the name sans @samp{.gz}.
|
||||
|
||||
Here is an example of how to prepend several pattern pairs to
|
||||
@code{auto-mode-alist}. (You might use this sort of expression in your
|
||||
@file{.emacs} file.)
|
||||
init file.)
|
||||
|
||||
@smallexample
|
||||
@group
|
||||
@ -881,16 +890,22 @@ check for an existing element, to avoid duplication. For example:
|
||||
|
||||
@smallexample
|
||||
@group
|
||||
(or (assq 'leif-mode minor-mode-alist)
|
||||
(setq minor-mode-alist
|
||||
(cons '(leif-mode " Leif") minor-mode-alist)))
|
||||
(unless (assq 'leif-mode minor-mode-alist)
|
||||
(setq minor-mode-alist
|
||||
(cons '(leif-mode " Leif") minor-mode-alist)))
|
||||
@end group
|
||||
@end smallexample
|
||||
|
||||
@noindent
|
||||
or like this, using @code{add-to-list} (@pxref{Setting Variables}):
|
||||
|
||||
@smallexample
|
||||
@group
|
||||
(add-to-list 'minor-mode-alist '(leif-mode " Leif"))
|
||||
@end group
|
||||
@end smallexample
|
||||
@end itemize
|
||||
|
||||
You can also use @code{add-to-list} to add an element to this list
|
||||
just once (@pxref{Setting Variables}).
|
||||
|
||||
Global minor modes distributed with Emacs should if possible support
|
||||
enabling and disabling via Custom (@pxref{Customization}). To do this,
|
||||
the first step is to define the mode variable with @code{defcustom}, and
|
||||
@ -1064,11 +1079,11 @@ Force redisplay of the current buffer's mode line and header line.
|
||||
@cindex mode line construct
|
||||
|
||||
The mode line contents are controlled by a data structure of lists,
|
||||
strings, symbols, and numbers kept in the buffer-local variable
|
||||
@code{mode-line-format}. The data structure is called a @dfn{mode line
|
||||
construct}, and it is built in recursive fashion out of simpler mode line
|
||||
constructs. The same data structure is used for constructing
|
||||
frame titles (@pxref{Frame Titles}).
|
||||
strings, symbols, and numbers kept in buffer-local variables. The data
|
||||
structure is called a @dfn{mode line construct}, and it is built in
|
||||
recursive fashion out of simpler mode line constructs. The same data
|
||||
structure is used for constructing frame titles (@pxref{Frame Titles})
|
||||
and header lines (@pxref{Header Lines}).
|
||||
|
||||
@defvar mode-line-format
|
||||
The value of this variable is a mode line construct with overall
|
||||
@ -1299,10 +1314,24 @@ status in modes used for communicating with subprocesses. It is
|
||||
displayed immediately following the major mode name, with no intervening
|
||||
space. For example, its value in the @samp{*shell*} buffer is
|
||||
@code{(":%s")}, which allows the shell to display its status along
|
||||
with the major mode as: @samp{(Shell:@: run)}. Normally this variable
|
||||
with the major mode as: @samp{(Shell:run)}. Normally this variable
|
||||
is @code{nil}.
|
||||
@end defvar
|
||||
|
||||
Some variables are used by @code{minor-mode-alist} to display
|
||||
a string for various minor modes when enabled. This is a typical
|
||||
example:
|
||||
|
||||
@defvar vc-mode
|
||||
The variable @code{vc-mode}, buffer-local in each buffer, records
|
||||
whether the buffer's visited file is maintained with version control,
|
||||
and, if so, which kind. Its value is a string that appears in the mode
|
||||
line, or @code{nil} for no version control.
|
||||
@end defvar
|
||||
|
||||
The variable @code{default-mode-line-format} is where
|
||||
@code{mode-line-format} usually gets its value:
|
||||
|
||||
@defvar default-mode-line-format
|
||||
This variable holds the default @code{mode-line-format} for buffers
|
||||
that do not override it. This is the same as @code{(default-value
|
||||
@ -1322,6 +1351,9 @@ The default value of @code{default-mode-line-format} is this list:
|
||||
global-mode-string
|
||||
@group
|
||||
" %[("
|
||||
;; @r{@code{mode-line-mode-name} is a function}
|
||||
;; @r{that copies the mode name and adds text
|
||||
;; @r{properties to make it mouse-sensitive.}
|
||||
(:eval (mode-line-mode-name))
|
||||
mode-line-process
|
||||
minor-mode-alist
|
||||
@ -1338,13 +1370,6 @@ The default value of @code{default-mode-line-format} is this list:
|
||||
@end example
|
||||
@end defvar
|
||||
|
||||
@defvar vc-mode
|
||||
The variable @code{vc-mode}, buffer-local in each buffer, records
|
||||
whether the buffer's visited file is maintained with version control,
|
||||
and, if so, which kind. Its value is @code{nil} for no version control,
|
||||
or a string that appears in the mode line.
|
||||
@end defvar
|
||||
|
||||
@node %-Constructs
|
||||
@subsection @code{%}-Constructs in the Mode Line
|
||||
|
||||
@ -1357,6 +1382,9 @@ integer after the @samp{%} to specify how many characters to display.
|
||||
The current buffer name, obtained with the @code{buffer-name} function.
|
||||
@xref{Buffer Names}.
|
||||
|
||||
@item %c
|
||||
The current column number of point.
|
||||
|
||||
@item %f
|
||||
The visited file name, obtained with the @code{buffer-file-name}
|
||||
function. @xref{Buffer File Name}.
|
||||
@ -1365,13 +1393,34 @@ function. @xref{Buffer File Name}.
|
||||
The title (only on a window system) or the name of the selected frame.
|
||||
@xref{Window Frame Parameters}.
|
||||
|
||||
@item %c
|
||||
The current column number of point.
|
||||
|
||||
@item %l
|
||||
The current line number of point, counting within the accessible portion
|
||||
of the buffer.
|
||||
|
||||
@item %n
|
||||
@samp{Narrow} when narrowing is in effect; nothing otherwise (see
|
||||
@code{narrow-to-region} in @ref{Narrowing}).
|
||||
|
||||
@item %p
|
||||
The percentage of the buffer text above the @strong{top} of window, or
|
||||
@samp{Top}, @samp{Bottom} or @samp{All}. Note that the default
|
||||
mode-line specification truncates this to three characters.
|
||||
|
||||
@item %P
|
||||
The percentage of the buffer text that is above the @strong{bottom} of
|
||||
the window (which includes the text visible in the window, as well as
|
||||
the text above the top), plus @samp{Top} if the top of the buffer is
|
||||
visible on screen; or @samp{Bottom} or @samp{All}.
|
||||
|
||||
@item %s
|
||||
The status of the subprocess belonging to the current buffer, obtained with
|
||||
@code{process-status}. @xref{Process Information}.
|
||||
|
||||
@item %t
|
||||
Whether the visited file is a text file or a binary file. This is a
|
||||
meaningful distinction only on certain operating systems (@pxref{MS-DOS
|
||||
File Types}).
|
||||
|
||||
@item %*
|
||||
@samp{%} if the buffer is read only (see @code{buffer-read-only}); @*
|
||||
@samp{*} if the buffer is modified (see @code{buffer-modified-p}); @*
|
||||
@ -1386,28 +1435,6 @@ read-only buffer. @xref{Buffer Modification}.
|
||||
@item %&
|
||||
@samp{*} if the buffer is modified, and @samp{-} otherwise.
|
||||
|
||||
@item %s
|
||||
The status of the subprocess belonging to the current buffer, obtained with
|
||||
@code{process-status}. @xref{Process Information}.
|
||||
|
||||
@item %t
|
||||
Whether the visited file is a text file or a binary file. (This is a
|
||||
meaningful distinction only on certain operating systems.)
|
||||
|
||||
@item %p
|
||||
The percentage of the buffer text above the @strong{top} of window, or
|
||||
@samp{Top}, @samp{Bottom} or @samp{All}.
|
||||
|
||||
@item %P
|
||||
The percentage of the buffer text that is above the @strong{bottom} of
|
||||
the window (which includes the text visible in the window, as well as
|
||||
the text above the top), plus @samp{Top} if the top of the buffer is
|
||||
visible on screen; or @samp{Bottom} or @samp{All}.
|
||||
|
||||
@item %n
|
||||
@samp{Narrow} when narrowing is in effect; nothing otherwise (see
|
||||
@code{narrow-to-region} in @ref{Narrowing}).
|
||||
|
||||
@item %[
|
||||
An indication of the depth of recursive editing levels (not counting
|
||||
minibuffer levels): one @samp{[} for each editing level.
|
||||
@ -1417,12 +1444,12 @@ minibuffer levels): one @samp{[} for each editing level.
|
||||
One @samp{]} for each recursive editing level (not counting minibuffer
|
||||
levels).
|
||||
|
||||
@item %-
|
||||
Dashes sufficient to fill the remainder of the mode line.
|
||||
|
||||
@item %%
|
||||
The character @samp{%}---this is how to include a literal @samp{%} in a
|
||||
string in which @code{%}-constructs are allowed.
|
||||
|
||||
@item %-
|
||||
Dashes sufficient to fill the remainder of the mode line.
|
||||
@end table
|
||||
|
||||
The following two @code{%}-constructs are still supported, but they are
|
||||
@ -1467,7 +1494,7 @@ structure, and make @var{form} evaluate to a string that has a
|
||||
|
||||
You use the @code{local-map} property to specify a keymap. Like any
|
||||
keymap, it can bind character keys and function keys; but that has no
|
||||
effect, since is impossible to move point into the mode line, This
|
||||
effect, since it is impossible to move point into the mode line. This
|
||||
keymap can only take real effect for mouse clicks.
|
||||
|
||||
@node Header Lines
|
||||
@ -1504,9 +1531,10 @@ It is normally @code{nil}, so that ordinary buffers have no header line.
|
||||
section in the buffer, from a menu which lists all of them, to go
|
||||
directly to that location in the buffer. Imenu works by constructing a
|
||||
buffer index which lists the names and buffer positions of the
|
||||
definitions, or portions of the buffer, so the user can pick one of them
|
||||
to move to. This section explains how to customize Imenu for a major
|
||||
mode.
|
||||
definitions, or other named portions of the buffer; then the user can
|
||||
choose one of them and move point to it. This section explains how to
|
||||
customize how Imenu finds the definitions or buffer portions for a
|
||||
particular major mode.
|
||||
|
||||
The usual and simplest way is to set the variable
|
||||
@code{imenu-generic-expression}:
|
||||
@ -1528,8 +1556,8 @@ in the top level of the buffer index.
|
||||
|
||||
The second item in the list, @var{regexp}, is a regular expression
|
||||
(@pxref{Regular Expressions}); anything in the buffer that it matches is
|
||||
considered a definition, to mention in the buffer index. The third
|
||||
item, @var{subexp}, indicates which subexpression in @var{regexp}
|
||||
considered a definition, something to mention in the buffer index. The
|
||||
third item, @var{subexp}, indicates which subexpression in @var{regexp}
|
||||
matches the definition's name.
|
||||
|
||||
An element can also look like this:
|
||||
@ -1539,8 +1567,8 @@ An element can also look like this:
|
||||
@end example
|
||||
|
||||
Each match for this element creates a special index item which, if
|
||||
selected by the user, calls @var{function} with arguments
|
||||
@var{item-name}, the buffer position, and @var{arguments}.
|
||||
selected by the user, calls @var{function} with arguments consisting of
|
||||
the item name, the buffer position, and @var{arguments}.
|
||||
|
||||
For Emacs Lisp mode, @var{pattern} could look like this:
|
||||
|
||||
@ -1610,12 +1638,12 @@ variables @code{imenu-prev-index-position-function} and
|
||||
@code{imenu-extract-index-name-function}:
|
||||
|
||||
@defvar imenu-prev-index-position-function
|
||||
If this variable is non-@code{nil}, its value should be a function for
|
||||
finding the next definition to mention in the buffer index, moving
|
||||
backwards in the file.
|
||||
|
||||
The function should leave point at the place to be connected to the
|
||||
index item; it should return @code{nil} if it doesn't find another item.
|
||||
If this variable is non-@code{nil}, its value should be a funtion that
|
||||
finds the next ``definition'' to put in the buffer index, scanning
|
||||
backward in the buffer from point. It should return @code{nil} if it
|
||||
doesn't find another ``definition'' before point. Otherwise it shuould
|
||||
leave point at the place it finds a ``definition,'' and return any
|
||||
non-@code{nil} value.
|
||||
|
||||
Setting this variable makes it buffer-local in the current buffer.
|
||||
@end defvar
|
||||
@ -1630,7 +1658,7 @@ Setting this variable makes it buffer-local in the current buffer.
|
||||
@end defvar
|
||||
|
||||
The last way to customize Imenu for a major mode is to set the
|
||||
variables @code{imenu-create-index-function}:
|
||||
variable @code{imenu-create-index-function}:
|
||||
|
||||
@defvar imenu-create-index-function
|
||||
This variable specifies the function to use for creating a buffer index.
|
||||
@ -1673,16 +1701,16 @@ A nested sub-alist element looks like @code{(@var{index-name}
|
||||
@dfn{Font Lock mode} is a feature that automatically attaches
|
||||
@code{face} properties to certain parts of the buffer based on their
|
||||
syntactic role. How it parses the buffer depends on the major mode;
|
||||
most major modes define syntactic criteria for which faces to use, in
|
||||
most major modes define syntactic criteria for which faces to use in
|
||||
which contexts. This section explains how to customize Font Lock for a
|
||||
particular language---in other words, for a particular major mode.
|
||||
particular major mode.
|
||||
|
||||
Font Lock mode finds text to highlight in two ways: through syntactic
|
||||
parsing based on the syntax table, and through searching (usually for
|
||||
regular expressions). Syntactic fontification happens first; it finds
|
||||
comments and string constants, and highlights them using
|
||||
@code{font-lock-comment-face} and @code{font-lock-string-face}
|
||||
(@pxref{Faces for Font Lock}); search-based fontification follows.
|
||||
(@pxref{Faces for Font Lock}). Search-based fontification follows.
|
||||
|
||||
@menu
|
||||
* Font Lock Basics::
|
||||
@ -1714,7 +1742,7 @@ this:
|
||||
|
||||
The first element, @var{keywords}, indirectly specifies the value of
|
||||
@code{font-lock-keywords}. It can be a symbol, a variable whose value
|
||||
is list to use for @code{font-lock-keywords}. It can also be a list of
|
||||
is the list to use for @code{font-lock-keywords}. It can also be a list of
|
||||
several such symbols, one for each possible level of fontification. The
|
||||
first symbol specifies how to do level 1 fontification, the second
|
||||
symbol how to do level 2, and so on.
|
||||
@ -1737,10 +1765,12 @@ table is stored in @code{font-lock-syntax-table}.
|
||||
The fifth element, @var{syntax-begin}, specifies the value of
|
||||
@code{font-lock-beginning-of-syntax-function} (see below).
|
||||
|
||||
Any further elements @var{other-vars} are of the form
|
||||
@code{(@var{variable} . @var{value})}. This kind of element means to
|
||||
make @var{variable} buffer-local and then set it to @var{value}. This
|
||||
is used to set other variables that affect fontification.
|
||||
All the remaining elements (if any) are collectively called
|
||||
@var{other-vars}. Each of these elements should have the form
|
||||
@code{(@var{variable} . @var{value})}---which means, make @var{variable}
|
||||
buffer-local and then set it to @var{value}. You can use these
|
||||
@var{other-vars} to set other variables that affect fontification,
|
||||
aside from those you can control with the first five elements.
|
||||
@end defvar
|
||||
|
||||
@node Search-based Fontification
|
||||
@ -2110,7 +2140,7 @@ value is one of those two types.
|
||||
A @dfn{hook} is a variable where you can store a function or functions
|
||||
to be called on a particular occasion by an existing program. Emacs
|
||||
provides hooks for the sake of customization. Most often, hooks are set
|
||||
up in the @file{.emacs} file, but Lisp programs can set them also.
|
||||
up in the init file (@pxref{Init File}), but Lisp programs can set them also.
|
||||
@xref{Standard Hooks}, for a list of standard hook variables.
|
||||
|
||||
@cindex normal hook
|
||||
@ -2136,7 +2166,7 @@ a Function}). Most normal hook variables are initially void;
|
||||
|
||||
@cindex abnormal hook
|
||||
If the hook variable's name does not end with @samp{-hook}, that
|
||||
indicates it is probably an @dfn{abnormal hook}; you should look at its
|
||||
indicates it is probably an @dfn{abnormal hook}. Then you should look at its
|
||||
documentation to see how to use the hook properly.
|
||||
|
||||
If the variable's name ends in @samp{-functions} or @samp{-hooks},
|
||||
@ -2161,11 +2191,10 @@ in Lisp Interaction mode:
|
||||
run particular hooks. This function calls the hook functions that have
|
||||
been added with @code{add-hook}.
|
||||
|
||||
@defun run-hooks &rest hookvar
|
||||
@defun run-hooks &rest hookvars
|
||||
This function takes one or more hook variable names as arguments, and
|
||||
runs each hook in turn. Each @var{hookvar} argument should be a symbol
|
||||
that is a hook variable. These arguments are processed in the order
|
||||
specified.
|
||||
runs each hook in turn. Each argument should be a symbol that is a hook
|
||||
variable. These arguments are processed in the order specified.
|
||||
|
||||
If a hook variable has a non-@code{nil} value, that value may be a
|
||||
function or a list of functions. If the value is a function (either a
|
||||
@ -2193,8 +2222,8 @@ This function is the way to run an abnormal hook which passes arguments
|
||||
to the hook functions, and stops as soon as any hook function fails. It
|
||||
calls each of the hook functions, passing each of them the arguments
|
||||
@var{args}, until some hook function returns @code{nil}. Then it stops,
|
||||
and returns @code{nil} if some hook function did, and otherwise
|
||||
returns a non-@code{nil} value.
|
||||
and returns @code{nil} if some hook function returned @code{nil}.
|
||||
Otherwise it returns a non-@code{nil} value.
|
||||
@end defun
|
||||
|
||||
@defun run-hook-with-args-until-success hook &rest args
|
||||
@ -2252,9 +2281,9 @@ current buffer. When a hook variable is buffer-local, it can have
|
||||
buffer-local and global hook functions, and @code{run-hooks} runs all of
|
||||
them.
|
||||
|
||||
This function works by making @code{t} an element of the buffer-local
|
||||
value. That serves as a flag to use the hook functions in the default
|
||||
value of the hook variable as well as those in the buffer-local value.
|
||||
This function works by adding @code{t} as an element of the buffer-local
|
||||
value. That serves as a flag to use the hook functions listed in the default
|
||||
value of the hook variable, as well as those listed in the buffer-local value.
|
||||
Since @code{run-hooks} understands this flag, @code{make-local-hook}
|
||||
works with all normal hooks. It works for only some non-normal
|
||||
hooks---those whose callers have been updated to understand this meaning
|
||||
|
@ -85,9 +85,10 @@ It loads the library @file{site-start}, unless the option
|
||||
@cindex @file{site-start.el}
|
||||
|
||||
@item
|
||||
It loads the file @file{~/.emacs}, unless @samp{-q} or @samp{-batch} was
|
||||
specified on the command line. The @samp{-u} option can specify another
|
||||
user whose home directory should be used instead of @file{~}.
|
||||
It loads your init file (usually @file{~/.emacs}), unless @samp{-q} or
|
||||
@samp{-batch} was specified on the command line. The @samp{-u} option
|
||||
can specify another user whose home directory should be used instead of
|
||||
@file{~}.
|
||||
|
||||
@item
|
||||
It loads the library @file{default}, unless @code{inhibit-default-init}
|
||||
@ -147,36 +148,45 @@ the information they are supposed to see.
|
||||
@defopt inhibit-startup-echo-area-message
|
||||
This variable controls the display of the startup echo area message.
|
||||
You can suppress the startup echo area message by adding text with this
|
||||
form to your @file{.emacs} file:
|
||||
form to your init file:
|
||||
|
||||
@example
|
||||
(setq inhibit-startup-echo-area-message
|
||||
"@var{your-login-name}")
|
||||
@end example
|
||||
|
||||
Emacs explicitly checks for an expression as shown above in your
|
||||
@file{.emacs} file; your login name must appear in the expression as a
|
||||
Lisp string constant. Other methods of setting
|
||||
Emacs explicitly checks for an expression as shown above in your init
|
||||
file; your login name must appear in the expression as a Lisp string
|
||||
constant. Other methods of setting
|
||||
@code{inhibit-startup-echo-area-message} to the same value do not
|
||||
inhibit the startup message.
|
||||
|
||||
This way, you can easily inhibit the message for yourself if you wish,
|
||||
but thoughtless copying of your @file{.emacs} file will not inhibit the
|
||||
message for someone else.
|
||||
but thoughtless copying of your init file will not inhibit the message
|
||||
for someone else.
|
||||
@end defopt
|
||||
|
||||
@node Init File
|
||||
@subsection The Init File: @file{.emacs}
|
||||
@subsection The Init File, @file{.emacs}
|
||||
@cindex init file
|
||||
@cindex @file{.emacs}
|
||||
|
||||
When you start Emacs, it normally attempts to load the file
|
||||
@file{.emacs} from your home directory. This file is called your
|
||||
@dfn{init file}. If it exists, it must contain Lisp code. The
|
||||
command-line switches @samp{-q} and @samp{-u} affect the use of the init
|
||||
file; @samp{-q} says not to load an init file, and @samp{-u} says to
|
||||
load a specified user's init file instead of yours. @xref{Entering
|
||||
Emacs,,, emacs, The GNU Emacs Manual}.
|
||||
When you start Emacs, it normally attempts to load your @dfn{init
|
||||
file}, a file in your home directory. Its normal name is @file{.emacs},
|
||||
but you can alternatively call it @file{.emacs.el}, which enables you to
|
||||
byte-compile it (@pxref{Byte Compilation}); then the actual file loaded
|
||||
will be @file{.emacs.elc}.
|
||||
|
||||
The command-line switches @samp{-q} and @samp{-u} control whether and
|
||||
where to find the init file; @samp{-q} says not to load an init file,
|
||||
and @samp{-u @var{user}} says to load @var{user}'s init file instead of
|
||||
yours. @xref{Entering Emacs,,, emacs, The GNU Emacs Manual}. If
|
||||
neither option is specified, Emacs uses the @code{LOGNAME} environment
|
||||
variable, or the @code{USER} (most systems) or @code{USERNAME} (MS
|
||||
systems) variable, to find your home directory and thus your init file;
|
||||
this way, even if you have su'd, Emacs still loads your own init file.
|
||||
If those environment variables are absent, though, Emacs uses your
|
||||
user-id to find your home directory.
|
||||
|
||||
@cindex default init file
|
||||
A site may have a @dfn{default init file}, which is the library named
|
||||
@ -200,10 +210,6 @@ way you can change it with real effect is to do so before dumping
|
||||
Emacs.
|
||||
@end defvar
|
||||
|
||||
If there is a great deal of code in your @file{.emacs} file, you
|
||||
can make it load faster by renaming it to @file{.emacs.el}
|
||||
and then byte-compiling it (@pxref{Byte Compilation}).
|
||||
|
||||
@xref{Init File Examples,,, emacs, The GNU Emacs Manual}, for
|
||||
examples of how to make various commonly desired customizations in your
|
||||
@file{.emacs} file.
|
||||
@ -253,7 +259,7 @@ the @file{term/aaa} library. If necessary, the library can evaluate
|
||||
@code{(getenv "TERM")} to find the full name of the terminal
|
||||
type.@refill
|
||||
|
||||
Your @file{.emacs} file can prevent the loading of the
|
||||
Your init file can prevent the loading of the
|
||||
terminal-specific library by setting the variable
|
||||
@code{term-file-prefix} to @code{nil}. This feature is useful when
|
||||
experimenting with your own peculiar customizations.
|
||||
@ -262,7 +268,7 @@ experimenting with your own peculiar customizations.
|
||||
terminal-specific library by setting the variable
|
||||
@code{term-setup-hook}. This is a normal hook which Emacs runs using
|
||||
@code{run-hooks} at the end of Emacs initialization, after loading both
|
||||
your @file{.emacs} file and any terminal-specific libraries. You can
|
||||
your init file and any terminal-specific libraries. You can
|
||||
use this variable to define initializations for terminals that do not
|
||||
have their own libraries. @xref{Hooks}.
|
||||
|
||||
@ -277,9 +283,9 @@ a terminal-specific initialization file as follows:
|
||||
|
||||
@noindent
|
||||
You may set the @code{term-file-prefix} variable to @code{nil} in your
|
||||
@file{.emacs} file if you do not wish to load the
|
||||
init file if you do not wish to load the
|
||||
terminal-initialization file. To do this, put the following in
|
||||
your @file{.emacs} file: @code{(setq term-file-prefix nil)}.
|
||||
your init file: @code{(setq term-file-prefix nil)}.
|
||||
|
||||
On MS-DOS, if the environment variable @code{TERM} is not set, Emacs
|
||||
uses @samp{internal} as the terminal type.
|
||||
@ -287,7 +293,7 @@ uses @samp{internal} as the terminal type.
|
||||
|
||||
@defvar term-setup-hook
|
||||
This variable is a normal hook that Emacs runs after loading your
|
||||
@file{.emacs} file, the default initialization file (if any) and the
|
||||
init file, the default initialization file (if any) and the
|
||||
terminal-specific Lisp file.
|
||||
|
||||
You can use @code{term-setup-hook} to override the definitions made by a
|
||||
@ -327,7 +333,7 @@ kill the Emacs until you are about to log out.)
|
||||
|
||||
@defun command-line
|
||||
This function parses the command line that Emacs was called with,
|
||||
processes it, loads the user's @file{.emacs} file and displays the
|
||||
processes it, loads the user's init file and displays the
|
||||
startup messages.
|
||||
@end defun
|
||||
|
||||
@ -811,7 +817,7 @@ files or user profile.
|
||||
This holds the nominal email address of the user who is using Emacs.
|
||||
Emacs normally sets this variable to a default value after reading your
|
||||
init files, but not if you have already set it. So you can set the
|
||||
variable to some other value in your @file{~/.emacs} file if you do not
|
||||
variable to some other value in your init file if you do not
|
||||
want to use the default value.
|
||||
@end defvar
|
||||
|
||||
@ -1788,7 +1794,7 @@ for them using @code{keyboard-translate-table} (@pxref{Translating Input}).
|
||||
@end deffn
|
||||
|
||||
You can use the function @code{enable-flow-control-on} in your
|
||||
@file{.emacs} file to enable flow control automatically on certain
|
||||
init file to enable flow control automatically on certain
|
||||
terminal types.
|
||||
|
||||
@defun enable-flow-control-on &rest termtypes
|
||||
|
@ -52,8 +52,8 @@ returns the symbol @code{foo}. Printing a list whose elements are
|
||||
text produces a list (but not the same list) with elements @code{a}
|
||||
and @code{b}.
|
||||
|
||||
However, these two operations are not precisely inverses. There are
|
||||
three kinds of exceptions:
|
||||
However, these two operations are not precisely inverse to each other.
|
||||
There are three kinds of exceptions:
|
||||
|
||||
@itemize @bullet
|
||||
@item
|
||||
@ -783,31 +783,3 @@ If non-@code{nil}, this variable enables detection of uninterned symbols
|
||||
uninterned symbols print with the prefix @samp{#:}, which tells the Lisp
|
||||
reader to produce an uninterned symbol.
|
||||
@end defvar
|
||||
|
||||
@tindex print-continuous-numbering
|
||||
@defvar print-continuous-numbering
|
||||
To print several objects with shared structure in common, you should
|
||||
bind @code{print-continuous-numbering} to @code{t} around them all.
|
||||
That tells @code{print} not to reinitialize @code{print-number-table}
|
||||
each time.
|
||||
@end defvar
|
||||
|
||||
@tindex print-number-table
|
||||
@defvar print-number-table
|
||||
This variable holds the table used as the basis of outputting
|
||||
@samp{#@var{n}=} and @samp{#@var{n}#} constructs for circular and shared
|
||||
structure. When you want to print several objects with shared structure
|
||||
in common, you should bind @code{print-number-table} to @code{nil}
|
||||
around them all.
|
||||
@end defvar
|
||||
|
||||
Here is an example of printing two objects with a common
|
||||
set of shared substructure:
|
||||
|
||||
@example
|
||||
(let ((print-circle t)
|
||||
(print-continuous-numbering t)
|
||||
print-number-table)
|
||||
(print1 x)
|
||||
(print1 y))
|
||||
@end example
|
||||
|
@ -424,6 +424,10 @@ syntax. (@xref{Abbrevs}, and @ref{Syntax Class Table}.)
|
||||
|
||||
This is also responsible for calling @code{blink-paren-function} when
|
||||
the inserted character has close parenthesis syntax (@pxref{Blinking}).
|
||||
|
||||
Do not try substituting your own definition of
|
||||
@code{self-insert-command} for the standard one. The editor command
|
||||
loop handles this function specially.
|
||||
@end deffn
|
||||
|
||||
@deffn Command newline &optional number-of-newlines
|
||||
@ -2398,6 +2402,41 @@ from the specified range of text. Here's an example:
|
||||
@example
|
||||
(set-text-properties @var{start} @var{end} nil)
|
||||
@end example
|
||||
@end defun
|
||||
|
||||
The easiest way to make a string with text properties
|
||||
is with @code{propertize}:
|
||||
|
||||
@defun propertize string &rest properties
|
||||
@tindex propertize
|
||||
This function returns a copy of @var{string} which has the text
|
||||
properties @var{properties}. These properties apply to all the
|
||||
characters in the string that is returned. Here is an example that
|
||||
constructs a string with a @code{face} property and a @code{mouse-face}
|
||||
property:
|
||||
|
||||
@smallexample
|
||||
(propertize "foo" 'face 'italic
|
||||
'mouse-face 'bold-italic)
|
||||
@result{} #("foo" 0 3 (mouse-face bold-italic face italic))
|
||||
@end smallexample
|
||||
|
||||
To put different properties on various parts of a string, you can
|
||||
construct each part with @code{propertize} and then combine them with
|
||||
@code{concat}:
|
||||
|
||||
@smallexample
|
||||
(concat
|
||||
(propertize "foo" 'face 'italic
|
||||
'mouse-face 'bold-italic)
|
||||
" and "
|
||||
(propertize "bar" 'face 'italic
|
||||
'mouse-face 'bold-italic))
|
||||
@result{} #("foo and bar"
|
||||
0 3 (face italic mouse-face bold-italic)
|
||||
3 8 nil
|
||||
8 11 (face italic mouse-face bold-italic))
|
||||
@end smallexample
|
||||
@end defun
|
||||
|
||||
See also the function @code{buffer-substring-no-properties}
|
||||
|
Loading…
Reference in New Issue
Block a user