if ($?prompt) set prompt = @dots{}
@end example
-@vindex TERM, environment variable, in compilation mode
+@vindex TERM@r{, environment variable, in compilation mode}
If you want to customize the value of the @env{TERM} environment
variable passed to the compilation subshell, customize the variable
@code{comint-terminfo-terminal} (@pxref{Shell Options}).
@end ifnottex
-@findex icalendar-export-file, icalendar-export-region
+@findex icalendar-export-file
+@findex icalendar-export-region
Use @code{icalendar-export-file} to interactively export an entire
Emacs diary file to iCalendar format. To export only a part of a diary
file, mark the relevant area, and call @code{icalendar-export-region}.
@c might be confused with general-purpose phrases.
@table @env
@item CDPATH
-@vindex CDPATH, environment variable
+@vindex CDPATH@r{, environment variable}
Used by the @code{cd} command to search for the directory you specify,
when you specify a relative directory,
@item DBUS_SESSION_BUS_ADDRESS
-@vindex DBUS_SESSION_BUS_ADDRESS, environment variable
+@vindex DBUS_SESSION_BUS_ADDRESS@r{, environment variable}
Used by D-Bus when Emacs is compiled with it. Usually, there is no
need to change it. Setting it to a dummy address, like
@samp{unix:path=/dev/null}, suppresses connections to the D-Bus session
bus as well as autolaunching the D-Bus session bus if not running yet.
@item EMACSDATA
-@vindex EMACSDATA, environment variable
+@vindex EMACSDATA@r{, environment variable}
Directory for the architecture-independent files that come with Emacs.
This is used to initialize the variable @code{data-directory}.
@item EMACSDOC
-@vindex EMACSDOC, environment variable
+@vindex EMACSDOC@r{, environment variable}
Directory for the documentation string file, which is used to
initialize the Lisp variable @code{doc-directory}.
@item EMACSLOADPATH
-@vindex EMACSLOADPATH, environment variable
+@vindex EMACSLOADPATH@r{, environment variable}
A colon-separated list of directories@footnote{Here and below,
whenever we say ``colon-separated list of directories'', it pertains
to Unix and GNU/Linux systems. On MS-DOS and MS-Windows, the
middle of the list, use 2 colons in a row, as in
@samp{EMACSLOADPATH="/tmp::/foo"}.
@item EMACSPATH
-@vindex EMACSPATH, environment variable
+@vindex EMACSPATH@r{, environment variable}
A colon-separated list of directories to search for executable files.
If set, Emacs uses this in addition to @env{PATH} (see below) when
initializing the variable @code{exec-path} (@pxref{Shell}).
@item EMAIL
-@vindex EMAIL, environment variable
+@vindex EMAIL@r{, environment variable}
@vindex user-mail-address@r{, initialization}
Your email address; used to initialize the Lisp variable
@code{user-mail-address}, which the Emacs mail interface puts into the
@samp{From} header of outgoing messages (@pxref{Mail Headers}).
@item ESHELL
-@vindex ESHELL, environment variable
+@vindex ESHELL@r{, environment variable}
Used for shell-mode to override the @env{SHELL} environment variable
(@pxref{Interactive Shell}).
@item HISTFILE
-@vindex HISTFILE, environment variable
+@vindex HISTFILE@r{, environment variable}
The name of the file that shell commands are saved in between logins.
This variable defaults to @file{~/.bash_history} if you use Bash, to
@file{~/.sh_history} if you use ksh, and to @file{~/.history}
otherwise.
@item HOME
-@vindex HOME, environment variable
+@vindex HOME@r{, environment variable}
The location of your files in the directory tree; used for
expansion of file names starting with a tilde (@file{~}). On MS-DOS,
it defaults to the directory from which Emacs was started, with
compatibility @file{C:/} will be used instead if a @file{.emacs} file
is found there.
@item HOSTNAME
-@vindex HOSTNAME, environment variable
+@vindex HOSTNAME@r{, environment variable}
The name of the machine that Emacs is running on.
@c complete.el is obsolete since 24.1.
@ignore
to search for files.
@end ignore
@item INFOPATH
-@vindex INFOPATH, environment variable
+@vindex INFOPATH@r{, environment variable}
A colon-separated list of directories in which to search for Info files.
@item LC_ALL
-@vindex LC_ALL, environment variable
+@vindex LC_ALL@r{, environment variable}
@itemx LC_COLLATE
-@vindex LC_COLLATE, environment variable
+@vindex LC_COLLATE@r{, environment variable}
@itemx LC_CTYPE
-@vindex LC_CTYPE, environment variable
+@vindex LC_CTYPE@r{, environment variable}
@itemx LC_MESSAGES
-@vindex LC_MESSAGES, environment variable
+@vindex LC_MESSAGES@r{, environment variable}
@itemx LC_MONETARY
-@vindex LC_MONETARY, environment variable
+@vindex LC_MONETARY@r{, environment variable}
@itemx LC_NUMERIC
-@vindex LC_NUMERIC, environment variable
+@vindex LC_NUMERIC@r{, environment variable}
@itemx LC_TIME
-@vindex LC_TIME, environment variable
+@vindex LC_TIME@r{, environment variable}
@itemx LANG
-@vindex LANG, environment variable
+@vindex LANG@r{, environment variable}
The user's preferred locale. The locale has six categories, specified
by the environment variables @env{LC_COLLATE} for sorting,
@env{LC_CTYPE} for character encoding, @env{LC_MESSAGES} for system
@code{locale-preferred-coding-systems}, to select a default language
environment and coding system. @xref{Language Environments}.
@item LOGNAME
-@vindex LOGNAME, environment variable
+@vindex LOGNAME@r{, environment variable}
The user's login name. See also @env{USER}.
@item MAIL
-@vindex MAIL, environment variable
+@vindex MAIL@r{, environment variable}
The name of your system mail inbox.
@ifnottex
@item MH
-@vindex MH, environment variable
+@vindex MH@r{, environment variable}
Name of setup file for the mh system. @xref{Top,,MH-E,mh-e, The Emacs
Interface to MH}.
@end ifnottex
@item NAME
-@vindex NAME, environment variable
+@vindex NAME@r{, environment variable}
Your real-world name. This is used to initialize the variable
@code{user-full-name} (@pxref{Mail Headers}).
@item NNTPSERVER
-@vindex NNTPSERVER, environment variable
+@vindex NNTPSERVER@r{, environment variable}
The name of the news server. Used by the mh and Gnus packages.
@item ORGANIZATION
-@vindex ORGANIZATION, environment variable
+@vindex ORGANIZATION@r{, environment variable}
The name of the organization to which you belong. Used for setting the
@samp{Organization:} header in your posts from the Gnus package.
@item PATH
-@vindex PATH, environment variable
+@vindex PATH@r{, environment variable}
A colon-separated list of directories containing executable files.
This is used to initialize the variable @code{exec-path}
(@pxref{Shell}).
@item PWD
-@vindex PWD, environment variable
+@vindex PWD@r{, environment variable}
If set, this should be the default directory when Emacs was started.
@item REPLYTO
-@vindex REPLYTO, environment variable
+@vindex REPLYTO@r{, environment variable}
If set, this specifies an initial value for the variable
@code{mail-default-reply-to} (@pxref{Mail Headers}).
@item SAVEDIR
-@vindex SAVEDIR, environment variable
+@vindex SAVEDIR@r{, environment variable}
The name of a directory in which news articles are saved by default.
Used by the Gnus package.
@item SHELL
-@vindex SHELL, environment variable
+@vindex SHELL@r{, environment variable}
The name of an interpreter used to parse and execute programs run from
inside Emacs.
@item SMTPSERVER
-@vindex SMTPSERVER, environment variable
+@vindex SMTPSERVER@r{, environment variable}
The name of the outgoing mail server. This is used to initialize the
variable @code{smtpmail-smtp-server} (@pxref{Mail Sending}).
@cindex background mode, on @command{xterm}
@item TERM
-@vindex TERM, environment variable
+@vindex TERM@r{, environment variable}
The type of the terminal that Emacs is using. This variable must be
set unless Emacs is run in batch mode. On MS-DOS, it defaults to
@samp{internal}, which specifies a built-in terminal emulation that
handles the machine's own display.
@item TERMCAP
-@vindex TERMCAP, environment variable
+@vindex TERMCAP@r{, environment variable}
The name of the termcap library file describing how to program the
terminal specified by @env{TERM}. This defaults to
@file{/etc/termcap}.
@item TMPDIR
-@vindex TMPDIR, environment variable
+@vindex TMPDIR@r{, environment variable}
@itemx TMP
-@vindex TMP, environment variable
+@vindex TMP@r{, environment variable}
@itemx TEMP
-@vindex TEMP, environment variable
+@vindex TEMP@r{, environment variable}
These environment variables are used to initialize the variable
@code{temporary-file-directory}, which specifies a directory in which
to put temporary files (@pxref{Backup}). Emacs tries to use
@file{/tmp}, but on MS-Windows and MS-DOS it instead falls back on
@env{TMP}, then @env{TEMP}, and finally @file{c:/temp}.
@item TZ
-@vindex TZ, environment variable
+@vindex TZ@r{, environment variable}
This specifies the default time zone and possibly also daylight
saving time information. @xref{Time Zone Rules,,, elisp, The GNU
Emacs Lisp Reference Manual}. On MS-DOS, if @env{TZ} is not set in the
appropriate for the country code returned by DOS@. On MS-Windows, Emacs
does not use @env{TZ} at all.
@item USER
-@vindex USER, environment variable
+@vindex USER@r{, environment variable}
The user's login name. See also @env{LOGNAME}. On MS-DOS, this
defaults to @samp{root}.
@item VERSION_CONTROL
-@vindex VERSION_CONTROL, environment variable
+@vindex VERSION_CONTROL@r{, environment variable}
Used to initialize the @code{version-control} variable (@pxref{Backup
Names}).
@end table
text in the minibuffer after point, the rest of the completion
alternative must contain that text as a substring.
-@findex partial completion
+@findex partial-completion
@item partial-completion
This aggressive completion style divides the minibuffer text into
words separated by hyphens or spaces, and completes each word
underlying shell, of course.
@vindex comint-terminfo-terminal
-@vindex TERM, environment variable, in sub-shell
+@vindex TERM@r{, environment variable, in sub-shell}
Comint mode sets the @env{TERM} environment variable to a safe default
value, but this value disables some useful features. For example,
color is disabled in applications that use @env{TERM} to determine if
@item
@findex open-termscript
@cindex termscript file
-@vindex TERM, environment variable, and display bugs
+@vindex TERM@r{, environment variable, and display bugs}
For possible display bugs, the terminal type (the value of environment
variable @env{TERM}), the complete termcap entry for the terminal from
@file{/etc/termcap} (since that file is not identical on all machines),
@node Window Choice
@subsection How @code{display-buffer} works
-@findex display-buffer, detailed description
+@findex display-buffer@r{, detailed description}
The @code{display-buffer} command (as well as commands that call it
internally) chooses a window to display by following the steps given
@unnumberedsubsec @code{fill-column}, an Example Variable
@end ifnottex
-@findex fill-column, @r{an example variable}
+@findex fill-column@r{, an example variable}
@cindex Example variable, @code{fill-column}
@cindex Variable, example of, @code{fill-column}
The variable @code{fill-column} illustrates a symbol with a value
@noindent
(The function @code{>} tests whether its first argument is greater than
its second argument and returns true if it is.)
-@findex > (greater than)
+@findex > @r{(greater than)}
Of course, in actual use, the test in an @code{if} expression will not
be fixed for all time as it is by the expression @code{(> 5 4)}.
@node Finding More
@section Finding More Information
-@findex describe-function, @r{introduced}
+@findex describe-function@r{, introduced}
@cindex Find function documentation
In this walk-through, I will describe each new function as we come to
it, sometimes in detail and sometimes briefly. If you are interested,
@node insert-buffer interactive
@subsection The Interactive Expression in @code{insert-buffer}
-@findex interactive, @r{example use of}
+@findex interactive@r{, example use of}
In @code{insert-buffer}, the argument to the @code{interactive}
declaration has two parts, an asterisk, @samp{*}, and @samp{bInsert
@node New insert-buffer
@subsection New Body for @code{insert-buffer}
-@findex insert-buffer, new version body
-@findex new version body for insert-buffer
+@findex insert-buffer@r{, new version body}
+@cindex new version body for insert-buffer
The body in the GNU Emacs 22 version is more confusing than the original.
@node car cdr & cons
@chapter @code{car}, @code{cdr}, @code{cons}: Fundamental Functions
-@findex car, @r{introduced}
-@findex cdr, @r{introduced}
+@findex car@r{, introduced}
+@findex cdr@r{, introduced}
In Lisp, @code{car}, @code{cdr}, and @code{cons} are fundamental
functions. The @code{cons} function is used to construct lists, and
@node cons
@section @code{cons}
-@findex cons, @r{introduced}
+@findex cons@r{, introduced}
The @code{cons} function constructs lists; it is the inverse of
@code{car} and @code{cdr}. For example, @code{cons} can be used to make
@noindent
Now, we can add a new element on to this list by evaluating the
following expression:
-@findex push, @r{example}
+@findex push@r{, example}
@smallexample
(push "a third clause" example-list)
next to last element is the last element of the kill ring, it will set
the last element of the kill ring.
-@findex nthcdr, @r{example}
+@findex nthcdr@r{, example}
The @code{nthcdr} function works by repeatedly taking the @sc{cdr} of a
list---it takes the @sc{cdr} of the @sc{cdr} of the @sc{cdr}
@dots{} It does this @var{N} times and returns the results.
(@xref{nthcdr, , @code{nthcdr}}.)
-@findex setcdr, @r{example}
+@findex setcdr@r{, example}
Thus, if we had a four element list that was supposed to be three
elements long, we could set the @sc{cdr} of the next to last element
to @code{nil}, and thereby shorten the list. (If you set the last
almost always to a width I did not want. Since I hardly ever reset my
default width, I simply unbound the key.
-@findex list-buffers, @r{rebound}
-@findex buffer-menu, @r{bound to key}
+@findex list-buffers@r{, rebound}
+@findex buffer-menu@r{, bound to key}
@need 1250
The following rebinds an existing key:
into it, to invoke Edebug at the proper places.
@kindex C-M-x
-@findex eval-defun (Edebug)
+@findex eval-defun @r{(Edebug)}
When you invoke command @kbd{C-M-x} (@code{eval-defun}) with a
prefix argument on a function definition, it instruments the
definition before evaluating it. (This does not modify the source
frame. @code{title} and @code{name} are meaningful on all terminals.
@table @code
-@vindex display, a frame parameter
+@vindex display@r{, a frame parameter}
@item display
The display on which to open this frame. It should be a string of the
form @samp{@var{host}:@var{dpy}.@var{screen}}, just like the
@env{DISPLAY} environment variable. @xref{Multiple Terminals}, for
more details about display names.
-@vindex display-type, a frame parameter
+@vindex display-type@r{, a frame parameter}
@item display-type
This parameter describes the range of possible colors that can be used
in this frame. Its value is @code{color}, @code{grayscale} or
@code{mono}.
-@vindex title, a frame parameter
+@vindex title@r{, a frame parameter}
@item title
If a frame has a non-@code{nil} title, it appears in the window
system's title bar at the top of the frame, and also in the mode line
Emacs is not using a window system, and can only display one frame at
a time. @xref{Frame Titles}.
-@vindex name, a frame parameter
+@vindex name@r{, a frame parameter}
@item name
The name of the frame. The frame name serves as a default for the frame
title, if the @code{title} parameter is unspecified or @code{nil}. If
name is also used (instead of the name of the Emacs executable) when
looking up X resources for the frame.
-@vindex explicit-name, a frame parameter
+@vindex explicit-name@r{, a frame parameter}
@item explicit-name
If the frame name was specified explicitly when the frame was created,
this parameter will be that name. If the frame wasn't explicitly
on TTY frames.)
@table @code
-@vindex left, a frame parameter
+@vindex left@r{, a frame parameter}
@item left
The position, in pixels, of the left outer edge of the frame with
respect to the left edge of the frame's display or parent frame. It can
as such by functions like @code{frame-parameters} and restored as such
by the desktop saving routines.
-@vindex top, a frame parameter
+@vindex top@r{, a frame parameter}
@item top
The screen position of the top (or bottom) edge, in pixels, with respect
to the top (or bottom) edge of the display or parent frame. It works
just like @code{left}, except vertically instead of horizontally.
-@vindex icon-left, a frame parameter
+@vindex icon-left@r{, a frame parameter}
@item icon-left
The screen position of the left edge of the frame's icon, in pixels,
counting from the left edge of the screen. This takes effect when the
you specify a value for this parameter, then you must also specify a
value for @code{icon-top} and vice versa.
-@vindex icon-top, a frame parameter
+@vindex icon-top@r{, a frame parameter}
@item icon-top
The screen position of the top edge of the frame's icon, in pixels,
counting from the top edge of the screen. This takes effect when the
frame is iconified, if the window manager supports this feature.
-@vindex user-position, a frame parameter
+@vindex user-position@r{, a frame parameter}
@item user-position
When you create a frame and specify its screen position with the
@code{left} and @code{top} parameters, use this parameter to say whether
parameters represent the user's stated preference; otherwise, use
@code{nil}.
-@vindex z-group, a frame parameter
+@vindex z-group@r{, a frame parameter}
@item z-group
This parameter specifies a relative position of the frame's
window-system window in the stacking (Z-) order of the frame's display.
sizes of these character units (@pxref{Face Attributes}).
@table @code
-@vindex width, a frame parameter
+@vindex width@r{, a frame parameter}
@item width
This parameter specifies the width of the frame. It can be specified as
in the following ways:
necessary, to a multiple of the frame's default character width. That
value is also used by the desktop saving routines.
-@vindex height, a frame parameter
+@vindex height@r{, a frame parameter}
@item height
This parameter specifies the height of the frame. It works just like
@code{width}, except vertically instead of horizontally.
-@vindex user-size, a frame parameter
+@vindex user-size@r{, a frame parameter}
@item user-size
This does for the size parameters @code{height} and @code{width} what
the @code{user-position} parameter (@pxref{Position Parameters,
user-position}) does for the position parameters @code{top} and
@code{left}.
-@vindex min-width, a frame parameter
+@vindex min-width@r{, a frame parameter}
@item min-width
This parameter specifies the minimum native width (@pxref{Frame
Geometry}) of the frame, in characters. Normally, the functions that
consequence that any components that do not fit will be clipped by the
window manager.
-@vindex min-height, a frame parameter
+@vindex min-height@r{, a frame parameter}
@item min-height
This parameter specifies the minimum native height (@pxref{Frame
Geometry}) of the frame, in characters. Normally, the functions that
@cindex fullheight frames
@cindex fullwidth frames
@cindex maximized frames
-@vindex fullscreen, a frame parameter
+@vindex fullscreen@r{, a frame parameter}
@item fullscreen
This parameter specifies whether to maximize the frame's width, height
or both. Its value can be @code{fullwidth}, @code{fullheight},
both will be displayed if the mouse pointer is moved to the top of the
screen.
-@vindex fullscreen-restore, a frame parameter
+@vindex fullscreen-restore@r{, a frame parameter}
@item fullscreen-restore
This parameter specifies the desired fullscreen state of the frame
after invoking the @code{toggle-frame-fullscreen} command (@pxref{Frame
This will give a new frame full height after typing in it @key{F11} for
the first time.
-@vindex fit-frame-to-buffer-margins, a frame parameter
+@vindex fit-frame-to-buffer-margins@r{, a frame parameter}
@item fit-frame-to-buffer-margins
This parameter allows to override the value of the option
@code{fit-frame-to-buffer-margins} when fitting this frame to the buffer
of its root window with @code{fit-frame-to-buffer} (@pxref{Resizing
Windows}).
-@vindex fit-frame-to-buffer-sizes, a frame parameter
+@vindex fit-frame-to-buffer-sizes@r{, a frame parameter}
@item fit-frame-to-buffer-sizes
This parameter allows to override the value of the option
@code{fit-frame-to-buffer-sizes} when fitting this frame to the buffer
frame, or control their sizes.
@table @code
-@vindex border-width, a frame parameter
+@vindex border-width@r{, a frame parameter}
@item border-width
The width in pixels of the frame's outer border (@pxref{Frame Geometry}).
-@vindex internal-border-width, a frame parameter
+@vindex internal-border-width@r{, a frame parameter}
@item internal-border-width
The width in pixels of the frame's internal border (@pxref{Frame
Geometry}).
-@vindex vertical-scroll-bars, a frame parameter
+@vindex vertical-scroll-bars@r{, a frame parameter}
@item vertical-scroll-bars
Whether the frame has scroll bars (@pxref{Scroll Bars}) for vertical
scrolling, and which side of the frame they should be on. The possible
values are @code{left}, @code{right}, and @code{nil} for no scroll bars.
-@vindex horizontal-scroll-bars, a frame parameter
+@vindex horizontal-scroll-bars@r{, a frame parameter}
@item horizontal-scroll-bars
Whether the frame has scroll bars for horizontal scrolling (@code{t} and
@code{bottom} mean yes, @code{nil} means no).
-@vindex scroll-bar-width, a frame parameter
+@vindex scroll-bar-width@r{, a frame parameter}
@item scroll-bar-width
The width of vertical scroll bars, in pixels, or @code{nil} meaning to
use the default width.
-@vindex scroll-bar-height, a frame parameter
+@vindex scroll-bar-height@r{, a frame parameter}
@item scroll-bar-height
The height of horizontal scroll bars, in pixels, or @code{nil} meaning
to use the default height.
-@vindex left-fringe, a frame parameter
-@vindex right-fringe, a frame parameter
+@vindex left-fringe@r{, a frame parameter}
+@vindex right-fringe@r{, a frame parameter}
@item left-fringe
@itemx right-fringe
The default width of the left and right fringes of windows in this
When using @code{set-frame-parameter}, passing a @code{nil} value
imposes an actual default value of 8 pixels.
-@vindex right-divider-width, a frame parameter
+@vindex right-divider-width@r{, a frame parameter}
@item right-divider-width
The width (thickness) reserved for the right divider (@pxref{Window
Dividers}) of any window on the frame, in pixels. A value of zero means
to not draw right dividers.
-@vindex bottom-divider-width, a frame parameter
+@vindex bottom-divider-width@r{, a frame parameter}
@item bottom-divider-width
The width (thickness) reserved for the bottom divider (@pxref{Window
Dividers}) of any window on the frame, in pixels. A value of zero means
to not draw bottom dividers.
-@vindex menu-bar-lines frame parameter
+@vindex menu-bar-lines@r{, a frame parameter}
@item menu-bar-lines
The number of lines to allocate at the top of the frame for a menu bar
(@pxref{Menu Bar}). The default is one if Menu Bar mode is enabled and
(@pxref{Frame Geometry}) allows to derive whether the menu bar actually
occupies one or more lines.
-@vindex tool-bar-lines frame parameter
+@vindex tool-bar-lines@r{, a frame parameter}
@item tool-bar-lines
The number of lines to use for the tool bar (@pxref{Tool Bar}). The
default is one if Tool Bar mode is enabled and zero otherwise.
@xref{Tool Bars,,,emacs, The GNU Emacs Manual}. This value may change
whenever the tool bar wraps (@pxref{Frame Layout}).
-@vindex tool-bar-position frame parameter
+@vindex tool-bar-position@r{, a frame parameter}
@item tool-bar-position
The position of the tool bar when Emacs was built with GTK+. Its value
can be one of @code{top}, @code{bottom} @code{left}, @code{right}. The
default is @code{top}.
-@vindex line-spacing, a frame parameter
+@vindex line-spacing@r{, a frame parameter}
@item line-spacing
Additional space to leave below each text line, in pixels (a positive
integer). @xref{Line Height}, for more information.
-@vindex no-special-glyphs, a frame parameter
+@vindex no-special-glyphs@r{, a frame parameter}
@item no-special-glyphs
If this is non-@code{nil}, it suppresses the display of any truncation
and continuation glyphs (@pxref{Truncation}) for all buffers displayed
with which buffers have been, or should, be displayed in the frame.
@table @code
-@vindex minibuffer, a frame parameter
+@vindex minibuffer@r{, a frame parameter}
@item minibuffer
Whether this frame has its own minibuffer. The value @code{t} means
yes, @code{nil} means no, @code{only} means this frame is just a
@code{nil}. If the parameter specifies a minibuffer window already,
setting it to @code{nil} has no effect.
-@vindex buffer-predicate, a frame parameter
+@vindex buffer-predicate@r{, a frame parameter}
@item buffer-predicate
The buffer-predicate function for this frame. The function
@code{other-buffer} uses this predicate (from the selected frame) to
each buffer; if the predicate returns a non-@code{nil} value, it
considers that buffer.
-@vindex buffer-list, a frame parameter
+@vindex buffer-list@r{, a frame parameter}
@item buffer-list
A list of buffers that have been selected in this frame, ordered
most-recently-selected first.
-@vindex unsplittable, a frame parameter
+@vindex unsplittable@r{, a frame parameter}
@item unsplittable
If non-@code{nil}, this frame's window is never split automatically.
@end table
These parameters supply forms of interactions between different frames.
@table @code
-@vindex parent-frame, a frame parameter
+@vindex parent-frame@r{, a frame parameter}
@item parent-frame
If non-@code{nil}, this means that this frame is a child frame
(@pxref{Child Frames}), and this parameter specifies its parent frame.
If @code{nil}, this means that this frame is a normal, top-level frame.
-@vindex delete-before, a frame parameter
+@vindex delete-before@r{, a frame parameter}
@item delete-before
If non-@code{nil}, this parameter specifies another frame whose deletion
will automatically trigger the deletion of this frame. @xref{Deleting
Frames}.
-@vindex mouse-wheel-frame, a frame parameter
+@vindex mouse-wheel-frame@r{, a frame parameter}
@item mouse-wheel-frame
If non-@code{nil}, this parameter specifies the frame whose windows will
be scrolled whenever the mouse wheel is scrolled with the mouse pointer
hovering over this frame, see @ref{Mouse Commands,,, emacs, The GNU
Emacs Manual}.
-@vindex no-other-frame, a frame parameter
+@vindex no-other-frame@r{, a frame parameter}
@item no-other-frame
If this is non-@code{nil}, then this frame is not eligible as candidate
for the functions @code{next-frame}, @code{previous-frame}
(@pxref{Finding All Frames}) and @code{other-frame}, see @ref{Frame
Commands,,, emacs, The GNU Emacs Manual}.
-@vindex auto-hide-function, a frame parameter
+@vindex auto-hide-function@r{, a frame parameter}
@item auto-hide-function
When this parameter specifies a function, that function will be called
instead of the function specified by the variable
@code{frame-auto-hide-function} when quitting the frame's only window
(@pxref{Quitting Windows}) and there are other frames left.
-@vindex minibuffer-exit, a frame parameter
+@vindex minibuffer-exit@r{, a frame parameter}
@item minibuffer-exit
When this parameter is non-@code{nil}, Emacs will by default make this
frame invisible whenever the minibuffer (@pxref{Minibuffers}) is exited.
disappear automatically (similar to how Emacs deals with a window) when
exiting the minibuffer.
-@vindex keep-ratio, a frame parameter
+@vindex keep-ratio@r{, a frame parameter}
@item keep-ratio
This parameter is currently meaningful for child frames (@pxref{Child
Frames}) only. If it is non-@code{nil}, then Emacs will try to keep the
they can be used for undecorated top-level frames as well.
@table @code
-@vindex drag-internal-border, a frame parameter
+@vindex drag-internal-border@r{, a frame parameter}
@item drag-internal-border
If non-@code{nil}, the frame can be resized by dragging its internal
borders, if present, with the mouse.
-@vindex drag-with-header-line, a frame parameter
+@vindex drag-with-header-line@r{, a frame parameter}
@item drag-with-header-line
If non-@code{nil}, the frame can be moved with the mouse by dragging the
header line of its topmost window.
-@vindex drag-with-mode-line, a frame parameter
+@vindex drag-with-mode-line@r{, a frame parameter}
@item drag-with-mode-line
If non-@code{nil}, the frame can be moved with the mouse by dragging the
mode line of its bottommost window. Note that such a frame is not
allowed to have its own minibuffer window.
-@vindex snap-width, a frame parameter
+@vindex snap-width@r{, a frame parameter}
@item snap-width
A frame that is moved with the mouse will ``snap'' at the border(s) of
the display or its parent frame whenever it is dragged as near to such
an edge as the number of pixels specified by this parameter.
-@vindex top-visible, a frame parameter
+@vindex top-visible@r{, a frame parameter}
@item top-visible
If this parameter is a number, the top edge of the frame never appears
above the top edge of its display or parent frame. Moreover, as many
@code{drag-with-header-line} parameter completely out of the area
of its parent frame.
-@vindex bottom-visible, a frame parameter
+@vindex bottom-visible@r{, a frame parameter}
@item bottom-visible
If this parameter is a number, the bottom edge of the frame never
appears below the bottom edge of its display or parent frame. Moreover,
effect on text terminals.
@table @code
-@vindex visibility, a frame parameter
+@vindex visibility@r{, a frame parameter}
@item visibility
The state of visibility of the frame. There are three possibilities:
@code{nil} for invisible, @code{t} for visible, and @code{icon} for
iconified. @xref{Visibility of Frames}.
-@vindex auto-raise, a frame parameter
+@vindex auto-raise@r{, a frame parameter}
@item auto-raise
If non-@code{nil}, Emacs automatically raises the frame when it is
selected. Some window managers do not allow this.
-@vindex auto-lower, a frame parameter
+@vindex auto-lower@r{, a frame parameter}
@item auto-lower
If non-@code{nil}, Emacs automatically lowers the frame when it is
deselected. Some window managers do not allow this.
-@vindex icon-type, a frame parameter
+@vindex icon-type@r{, a frame parameter}
@item icon-type
The type of icon to use for this frame. If the value is a string,
that specifies a file containing a bitmap to use; @code{nil} specifies
no icon (in which case the window manager decides what to show); any
other non-@code{nil} value specifies the default Emacs icon.
-@vindex icon-name, a frame parameter
+@vindex icon-name@r{, a frame parameter}
@item icon-name
The name to use in the icon for this frame, when and if the icon
appears. If this is @code{nil}, the frame's title is used.
-@vindex window-id, a frame parameter
+@vindex window-id@r{, a frame parameter}
@item window-id
The ID number which the graphical display uses for this frame. Emacs
assigns this parameter when the frame is created; changing the
parameter has no effect on the actual ID number.
-@vindex outer-window-id, a frame parameter
+@vindex outer-window-id@r{, a frame parameter}
@item outer-window-id
The ID number of the outermost window-system window in which the frame
exists. As with @code{window-id}, changing this parameter has no
actual effect.
-@vindex wait-for-wm, a frame parameter
+@vindex wait-for-wm@r{, a frame parameter}
@item wait-for-wm
If non-@code{nil}, tell Xt to wait for the window manager to confirm
geometry changes. Some window managers, including versions of Fvwm2
and KDE, fail to confirm, so Xt hangs. Set this to @code{nil} to
prevent hanging with those window managers.
-@vindex sticky, a frame parameter
+@vindex sticky@r{, a frame parameter}
@item sticky
If non-@code{nil}, the frame is visible on all virtual desktops on systems
with virtual desktops.
-@vindex inhibit-double-buffering, a frame parameter
+@vindex inhibit-double-buffering@r{, a frame parameter}
@item inhibit-double-buffering
If non-@code{nil}, the frame is drawn to the screen without double
buffering. Emacs normally attempts to use double buffering, where
available, to reduce flicker. Set this property if you experience
display bugs or pine for that retro, flicker-y feeling.
-@vindex skip-taskbar, a frame parameter
+@vindex skip-taskbar@r{, a frame parameter}
@item skip-taskbar
If non-@code{nil}, this tells the window manager to remove the frame's
icon from the taskbar associated with the frame's display and inhibit
window at the bottom of the desktop. Some window managers may not honor
this parameter.
-@vindex no-focus-on-map, a frame parameter
+@vindex no-focus-on-map@r{, a frame parameter}
@item no-focus-on-map
If non-@code{nil}, this means that the frame does not want to receive
input focus when it is mapped (@pxref{Visibility of Frames}). Some
window managers may not honor this parameter.
-@vindex no-accept-focus, a frame parameter
+@vindex no-accept-focus@r{, a frame parameter}
@item no-accept-focus
If non-@code{nil}, this means that the frame does not want to receive
input focus via explicit mouse clicks or when moving the mouse into it
non-selected frame with the mouse. Some window managers may not honor
this parameter.
-@vindex undecorated, a frame parameter
+@vindex undecorated@r{, a frame parameter}
@item undecorated
If non-@code{nil}, this frame's window-system window is drawn without
decorations, like the title, minimize/maximize boxes and external
NS builds consider the tool bar to be a decoration, and therefore hide
it on an undecorated frame.
-@vindex override-redirect, a frame parameter
+@vindex override-redirect@r{, a frame parameter}
@item override-redirect
@cindex override redirect frames
If non-@code{nil}, this means that this is an @dfn{override redirect}
no effect on MS-Windows.
@ignore
-@vindex parent-id, a frame parameter
+@vindex parent-id@r{, a frame parameter}
@item parent-id
@c ??? Not yet working.
The X window number of the window that should be the parent of this one.
it and see if it works.)
@end ignore
-@vindex ns-appearance, a frame parameter
+@vindex ns-appearance@r{, a frame parameter}
@item ns-appearance
Only available on macOS, if set to @code{dark} draw this frame's
window-system window using the ``vibrant dark'' theme, otherwise use
toolbar and scrollbars to a dark appearance when using an Emacs theme
with a dark background.
-@vindex ns-transparent-titlebar, a frame parameter
+@vindex ns-transparent-titlebar@r{, a frame parameter}
@item ns-transparent-titlebar
Only available on macOS, if non-@code{nil}, set the titlebar and
toolbar to be transparent. This effectively sets the background color
This frame parameter controls the way the cursor looks.
@table @code
-@vindex cursor-type, a frame parameter
+@vindex cursor-type@r{, a frame parameter}
@item cursor-type
How to display the cursor. Legitimate values are:
These frame parameters control the use of fonts and colors.
@table @code
-@vindex font-backend, a frame parameter
+@vindex font-backend@r{, a frame parameter}
@item font-backend
A list of symbols, specifying the @dfn{font backends} to use for
drawing fonts in the frame, in order of priority. On X, there are
Manual}). On other systems, there is only one available font backend,
so it does not make sense to modify this frame parameter.
-@vindex background-mode, a frame parameter
+@vindex background-mode@r{, a frame parameter}
@item background-mode
This parameter is either @code{dark} or @code{light}, according
to whether the background color is a light one or a dark one.
-@vindex tty-color-mode, a frame parameter
+@vindex tty-color-mode@r{, a frame parameter}
@item tty-color-mode
@cindex standard colors for character terminals
This parameter overrides the terminal's color support as given by the
the value of @code{tty-color-mode-alist}, and the associated number is
used instead.
-@vindex screen-gamma, a frame parameter
+@vindex screen-gamma@r{, a frame parameter}
@item screen-gamma
@cindex gamma correction
If this is a number, Emacs performs gamma correction which adjusts
that makes colors darker. A screen gamma value of 1.5 may give good
results for LCD color displays.
-@vindex alpha, a frame parameter
+@vindex alpha@r{, a frame parameter}
@item alpha
@cindex opacity, frame
@cindex transparency, frame
faces (@pxref{Standard Faces,,, emacs, The Emacs Manual}):
@table @code
-@vindex font, a frame parameter
+@vindex font@r{, a frame parameter}
@item font
The name of the font for displaying text in the frame. This is a
string, either a valid font name for your system or the name of an Emacs
fontset (@pxref{Fontsets}). It is equivalent to the @code{font}
attribute of the @code{default} face.
-@vindex foreground-color, a frame parameter
+@vindex foreground-color@r{, a frame parameter}
@item foreground-color
The color to use for the image of a character. It is equivalent to
the @code{:foreground} attribute of the @code{default} face.
-@vindex background-color, a frame parameter
+@vindex background-color@r{, a frame parameter}
@item background-color
The color to use for the background of characters. It is equivalent to
the @code{:background} attribute of the @code{default} face.
-@vindex mouse-color, a frame parameter
+@vindex mouse-color@r{, a frame parameter}
@item mouse-color
The color for the mouse pointer. It is equivalent to the @code{:background}
attribute of the @code{mouse} face.
-@vindex cursor-color, a frame parameter
+@vindex cursor-color@r{, a frame parameter}
@item cursor-color
The color for the cursor that shows point. It is equivalent to the
@code{:background} attribute of the @code{cursor} face.
-@vindex border-color, a frame parameter
+@vindex border-color@r{, a frame parameter}
@item border-color
The color for the border of the frame. It is equivalent to the
@code{:background} attribute of the @code{border} face.
-@vindex scroll-bar-foreground, a frame parameter
+@vindex scroll-bar-foreground@r{, a frame parameter}
@item scroll-bar-foreground
If non-@code{nil}, the color for the foreground of scroll bars. It is
equivalent to the @code{:foreground} attribute of the
@code{scroll-bar} face.
-@vindex scroll-bar-background, a frame parameter
+@vindex scroll-bar-background@r{, a frame parameter}
@item scroll-bar-background
If non-@code{nil}, the color for the background of scroll bars. It is
equivalent to the @code{:background} attribute of the
@section Time Zone Rules
@cindex time zone rules
-@vindex TZ, environment variable
+@vindex TZ@r{, environment variable}
The default time zone is determined by the @env{TZ} environment
variable. @xref{System Environment}. For example, you can tell Emacs
to default to Universal Time with @code{(setenv "TZ" "UTC0")}. If
@table @code
@item delete-window
-@vindex delete-window, a window parameter
+@vindex delete-window@r{, a window parameter}
This parameter affects the execution of @code{delete-window}
(@pxref{Deleting Windows}).
@item delete-other-windows
-@vindex delete-other-windows, a window parameter
+@vindex delete-other-windows@r{, a window parameter}
This parameter affects the execution of @code{delete-other-windows}
(@pxref{Deleting Windows}).
@item no-delete-other-windows
-@vindex no-delete-other-windows, a window parameter
+@vindex no-delete-other-windows@r{, a window parameter}
This parameter marks the window as not deletable by
@code{delete-other-windows} (@pxref{Deleting Windows}).
@item split-window
-@vindex split-window, a window parameter
+@vindex split-window@r{, a window parameter}
This parameter affects the execution of @code{split-window}
(@pxref{Splitting Windows}).
@item other-window
-@vindex other-window, a window parameter
+@vindex other-window@r{, a window parameter}
This parameter affects the execution of @code{other-window}
(@pxref{Cyclic Window Ordering}).
@item no-other-window
-@vindex no-other-window, a window parameter
+@vindex no-other-window@r{, a window parameter}
This parameter marks the window as not selectable by @code{other-window}
(@pxref{Cyclic Window Ordering}).
@item clone-of
-@vindex clone-of, a window parameter
+@vindex clone-of@r{, a window parameter}
This parameter specifies the window that this one has been cloned
from. It is installed by @code{window-state-get} (@pxref{Window
Configurations}).
@item window-preserved-size
-@vindex window-preserved-size, a window parameter
+@vindex window-preserved-size@r{, a window parameter}
This parameter specifies a buffer, a direction where @code{nil} means
vertical and @code{t} horizontal, and a size in pixels. If this window
displays the specified buffer and its size in the indicated direction
@code{window-preserve-size} (@pxref{Preserving Window Sizes}).
@item quit-restore
-@vindex quit-restore, a window parameter
+@vindex quit-restore@r{, a window parameter}
This parameter is installed by the buffer display functions
(@pxref{Choosing Window}) and consulted by @code{quit-restore-window}
(@pxref{Quitting Windows}). It contains four elements:
Windows} for details.
@item window-side window-slot
-@vindex window-side, a window parameter
-@vindex window-slot, a window parameter
+@vindex window-side@r{, a window parameter}
+@vindex window-slot@r{, a window parameter}
These parameters are used for implementing side windows (@pxref{Side
Windows}).
@item window-atom
-@vindex window-atom, a window parameter
+@vindex window-atom@r{, a window parameter}
This parameter is used for implementing atomic windows, see @ref{Atomic
Windows}.
@item mode-line-format
-@vindex mode-line-format, a window parameter
+@vindex mode-line-format@r{, a window parameter}
This parameter replaces the value of the buffer-local variable
@code{mode-line-format} (@pxref{Mode Line Basics}) of this window's
buffer whenever this window is displayed. The symbol @code{none} means
affected.
@item header-line-format
-@vindex header-line-format, a window parameter
+@vindex header-line-format@r{, a window parameter}
This parameter replaces the value of the buffer-local variable
@code{header-line-format} (@pxref{Mode Line Basics}) of this window's
buffer whenever this window is displayed. The symbol @code{none} means
affected.
@item min-margins
-@vindex min-margins, a window parameter
+@vindex min-margins@r{, a window parameter}
The value of this parameter is a cons cell whose @sc{car} and @sc{cdr},
if non-@code{nil}, specify the minimum values (in columns) for the left
and right margin of this window. When present, Emacs will use these
(@pxref{Updating CC Mode}).
@deffn Command c-version
-@findex version (c-)
+@findex version @r{(c-)}
You can find out what version of @ccmode{} you are using by visiting a C
file and entering @kbd{M-x c-version RET}. You should see this message in
the echo area:
@item @kbd{@key{TAB}} (@code{c-indent-command})
@kindex TAB
@findex c-indent-command
-@findex indent-command (c-)
+@findex indent-command @r{(c-)}
This command indents the current line. That is all you need to know
about it for normal use.
@emacsmantitle{}}.
@defopt c-tab-always-indent
-@vindex tab-always-indent (c-)
+@vindex tab-always-indent @r{(c-)}
@cindex literal
This variable modifies how @key{TAB} operates.
@itemize @bullet
@end defopt
@defopt c-insert-tab-function
-@vindex insert-tab-function (c-)
+@vindex insert-tab-function @r{(c-)}
@findex tab-to-tab-stop
When ``some whitespace'' is inserted as described above, what actually
happens is that the function stored in @code{c-insert-tab-function} is
@item @kbd{C-M-q} (@code{c-indent-exp})
@kindex C-M-q
@findex c-indent-exp
-@findex indent-exp (c-)
+@findex indent-exp @r{(c-)}
Indents an entire balanced brace or parenthesis expression. Note that
point must be on the opening brace or parenthesis of the expression
you want to indent.
@item @kbd{C-c C-q} (@code{c-indent-defun})
@kindex C-c C-q
@findex c-indent-defun
-@findex indent-defun (c-)
+@findex indent-defun @r{(c-)}
Indents the entire top-level function, class or macro definition
encompassing point. It leaves point unchanged. This function can't be
used to reindent a nested brace construct, such as a nested class or
@item @kbd{C-M-h} (@code{c-mark-function})
@kindex C-M-h
@findex c-mark-function
-@findex mark-function (c-)
+@findex mark-function @r{(c-)}
While not strictly an indentation command, this is useful for marking
the current top-level function or class definition as the current
region. As with @code{c-indent-defun}, this command operates on
@end defopt
@defopt c-progress-interval
-@vindex progress-interval (c-)
+@vindex progress-interval @r{(c-)}
When indenting large regions of code, this variable controls how often a
progress message is displayed. Set this variable to @code{nil} to
inhibit the progress messages, or set it to an integer which is how
command, but @ccmode{} enhances it a bit with two variables:
@defopt c-indent-comment-alist
-@vindex indent-comment-alist (c-)
+@vindex indent-comment-alist @r{(c-)}
@vindex comment-column
This style variable allows you to vary the column that @kbd{M-;} puts
the comment at, depending on what sort of code is on the line, and
@end defopt
@defopt c-indent-comments-syntactically-p
-@vindex indent-comments-syntactically-p (c-)
+@vindex indent-comments-syntactically-p @r{(c-)}
Normally, when this style variable is @code{nil}, @kbd{M-;} will
indent comment-only lines according to @code{c-indent-comment-alist},
just as it does with lines where other code precede the comments.
@findex c-beginning-of-defun
@findex c-end-of-defun
@vindex c-defun-tactic
-@vindex defun-tactic (c-)
+@vindex defun-tactic @r{(c-)}
Move to the beginning or end of the current or next function. Other
constructs (such as a structs or classes) which have a brace block
@kindex C-M-a (AWK Mode)
@kindex C-M-e (AWK Mode)
@findex c-awk-beginning-of-defun
-@findex awk-beginning-of-defun (c-)
+@findex awk-beginning-of-defun @r{(c-)}
@findex c-awk-end-of-defun
-@findex awk-end-of-defun (c-)
+@findex awk-end-of-defun @r{(c-)}
Move to the beginning or end of the current or next AWK defun. These
commands can take prefix-arguments, their functionality being entirely
equivalent to @code{beginning-of-defun} and @code{end-of-defun}.
@kindex M-e
@findex c-beginning-of-statement
@findex c-end-of-statement
-@findex beginning-of-statement (c-)
-@findex end-of-statement (c-)
+@findex beginning-of-statement @r{(c-)}
+@findex end-of-statement @r{(c-)}
Move to the beginning or end of the innermost C statement. If point
is already there, move to the next beginning or end of a statement,
even if that means moving into a block. (Use @kbd{C-M-b} or
@item @kbd{C-c C-u} (@code{c-up-conditional})
@kindex C-c C-u
@findex c-up-conditional
-@findex up-conditional (c-)
+@findex up-conditional @r{(c-)}
Move back to the containing preprocessor conditional, leaving the mark
behind. A prefix argument acts as a repeat count. With a negative
argument, move forward to the end of the containing preprocessor
@item @kbd{M-x c-up-conditional-with-else}
@findex c-up-conditional-with-else
-@findex up-conditional-with-else (c-)
+@findex up-conditional-with-else @r{(c-)}
A variety of @code{c-up-conditional} that also stops at @samp{#else}
lines. Normally those lines are ignored.
@item @kbd{M-x c-down-conditional}
@findex c-down-conditional
-@findex down-conditional (c-)
+@findex down-conditional @r{(c-)}
Move forward into the next nested preprocessor conditional, leaving
the mark behind. A prefix argument acts as a repeat count. With a
negative argument, move backward into the previous nested preprocessor
@item @kbd{M-x c-down-conditional-with-else}
@findex c-down-conditional-with-else
-@findex down-conditional-with-else (c-)
+@findex down-conditional-with-else @r{(c-)}
A variety of @code{c-down-conditional} that also stops at @samp{#else}
lines. Normally those lines are ignored.
@kindex C-c C-n
@findex c-backward-conditional
@findex c-forward-conditional
-@findex backward-conditional (c-)
-@findex forward-conditional (c-)
+@findex backward-conditional @r{(c-)}
+@findex forward-conditional @r{(c-)}
Move backward or forward across a preprocessor conditional, leaving
the mark behind. A prefix argument acts as a repeat count. With a
negative argument, move in the opposite direction.
@itemx @kbd{M-x c-forward-into-nomenclature}
@findex c-backward-into-nomenclature
@findex c-forward-into-nomenclature
-@findex backward-into-nomenclature (c-)
-@findex forward-into-nomenclature (c-)
+@findex backward-into-nomenclature @r{(c-)}
+@findex forward-into-nomenclature @r{(c-)}
A popular programming style, especially for object-oriented languages
such as C++ is to write symbols in a mixed case format, where the
first letter of each word is capitalized, and not separated by
@item @kbd{M-q} (@code{c-fill-paragraph})
@kindex M-q
@findex c-fill-paragraph
-@findex fill-paragraph (c-)
+@findex fill-paragraph @r{(c-)}
@cindex Javadoc markup
@cindex Pike autodoc markup
This command fills multiline string literals and both block
@item @kbd{M-j} (@code{c-indent-new-comment-line})
@kindex M-j
@findex c-indent-new-comment-line
-@findex indent-new-comment-line (c-)
+@findex indent-new-comment-line @r{(c-)}
This breaks the current line at point and indents the new line. If
point was in a comment, the new line gets the proper comment line
prefix. If point was inside a macro, a backslash is inserted before
@item @kbd{M-x c-context-line-break}
@findex c-context-line-break
-@findex context-line-break (c-)
+@findex context-line-break @r{(c-)}
Insert a line break suitable to the context: If the point is inside a
comment, the new line gets the suitable indentation and comment line
prefix like @code{c-indent-new-comment-line}. In normal code it's
@item @kbd{M-x c-context-open-line}
@findex c-context-open-line
-@findex context-open-line (c-)
+@findex context-open-line @r{(c-)}
This is to @kbd{C-o} (@kbd{M-x open-line}) as
@code{c-context-line-break} is to @kbd{RET}. I.e., it works just like
@code{c-context-line-break} but leaves the point before the inserted
@item @kbd{C-c C-k} (@code{c-toggle-comment-style})
@kindex C-c C-k
@findex c-toggle-comment-style
-@findex toggle-comment-style (c-)
+@findex toggle-comment-style @r{(c-)}
Toggle the comment style between line style and block style. In modes
(such as AWK Mode) which only have one of these styles, this function
does nothing.
@item @kbd{C-c C-l} (@code{c-toggle-electric-state})
@kindex C-c C-l
@findex c-toggle-electric-state
-@findex toggle-electric-state (c-)
+@findex toggle-electric-state @r{(c-)}
Toggle electric minor mode. When the command turns the mode off, it
also suppresses auto-newline mode.
@item @kbd{C-c C-a} (@code{c-toggle-auto-newline})
@kindex C-c C-a
@findex c-toggle-auto-newline
-@findex toggle-auto-newline (c-)
+@findex toggle-auto-newline @r{(c-)}
Toggle auto-newline minor mode. When the command turns the mode on,
it also enables electric minor mode.
@item @kbd{M-x c-toggle-hungry-state}@footnote{Prior to @ccmode{} 5.31, this command was bound to @kbd{C-c C-d}.}
@findex c-toggle-hungry-state
-@findex toggle-hungry-state (c-)
+@findex toggle-hungry-state @r{(c-)}
Toggle hungry-delete minor mode.
@item @kbd{M-x c-toggle-auto-hungry-state}@footnote{Prior to @ccmode{} 5.31, this command was bound to @kbd{C-c C-t}.}
@findex c-toggle-auto-hungry-state
-@findex toggle-auto-hungry-state (c-)
+@findex toggle-auto-hungry-state @r{(c-)}
Toggle both auto-newline and hungry delete minor modes.
@item @kbd{C-c C-w} (@code{M-x subword-mode})
@item @kbd{M-x c-toggle-syntactic-indentation}
@findex c-toggle-syntactic-indentation
-@findex toggle-syntactic-indentation (c-)
+@findex toggle-syntactic-indentation @r{(c-)}
Toggle syntactic-indentation mode.
@end table
@item #
@kindex #
@findex c-electric-pound
-@findex electric-pound (c-)
+@findex electric-pound @r{(c-)}
@vindex c-electric-pound-behavior
-@vindex electric-pound-behavior (c-)
+@vindex electric-pound-behavior @r{(c-)}
Pound (bound to @code{c-electric-pound}) is electric when typed as the
first non-whitespace character on a line and not within a macro
definition. In this case, the variable @code{c-electric-pound-behavior}
@itemx /
@kindex /
@findex c-electric-star
-@findex electric-star (c-)
+@findex electric-star @r{(c-)}
@findex c-electric-slash
-@findex electric-slash (c-)
+@findex electric-slash @r{(c-)}
A star (bound to @code{c-electric-star}) or a slash
(@code{c-electric-slash}) causes reindentation when you type it as the
second component of a C style block comment opener (@samp{/*}) or a
@itemx >
@kindex >
@findex c-electric-lt-gt
-@findex electric-lt-gt (c-)
+@findex electric-lt-gt @r{(c-)}
A less-than or greater-than sign (bound to @code{c-electric-lt-gt}) is
electric in two circumstances: when it is an angle bracket in a C++
@samp{template} declaration (and similar constructs in other
@itemx )
@kindex )
@findex c-electric-paren
-@findex electric-paren (c-)
+@findex electric-paren @r{(c-)}
The normal parenthesis characters @samp{(} and @samp{)} (bound to
@code{c-electric-paren}) reindent the current line. This is useful
for getting the closing parenthesis of an argument list aligned
@itemx @}
@kindex @}
@findex c-electric-brace
-@findex electric-brace (c-)
+@findex electric-brace @r{(c-)}
Typing a brace (bound to @code{c-electric-brace}) reindents the
current line. Also, one or more newlines might be inserted if
auto-newline minor mode is enabled. @xref{Auto-newlines}.
@item :
@kindex :
@findex c-electric-colon
-@findex electric-colon (c-)
+@findex electric-colon @r{(c-)}
Typing a colon (bound to @code{c-electric-colon}) reindents the
current line. Additionally, one or more newlines might be inserted if
auto-newline minor mode is enabled. @xref{Auto-newlines}. If you
@itemx ,
@kindex ,
@findex c-electric-semi&comma
-@findex electric-semi&comma (c-)
+@findex electric-semi&comma @r{(c-)}
Typing a semicolon or comma (bound to @code{c-electric-semi&comma})
reindents the current line. Also, a newline might be inserted if
auto-newline minor mode is enabled. @xref{Auto-newlines}.
@end table
@deffn Command c-electric-continued-statement
-@findex electric-continued-statement (c-)
+@findex electric-continued-statement @r{(c-)}
Certain keywords are electric, causing reindentation when they are
preceded only by whitespace on the line. The keywords are those that
@item @kbd{@key{DEL}} (@code{c-electric-backspace})
@kindex DEL
@findex c-electric-backspace
-@findex electric-backspace (c-)
+@findex electric-backspace @r{(c-)}
This command is run by default when you hit the @kbd{DEL} key. When
hungry delete mode is enabled, it deletes any amount of whitespace in
the backwards direction. Otherwise, or when used with a prefix
@item @code{c-backspace-function}
@vindex c-backspace-function
-@vindex backspace-function (c-)
+@vindex backspace-function @r{(c-)}
@findex backward-delete-char-untabify
Hook that gets called by @code{c-electric-backspace} when it doesn't
do an ``electric'' deletion of the preceding whitespace. The default
@item @kbd{C-d} (@code{c-electric-delete-forward})
@kindex C-d
@findex c-electric-delete-forward
-@findex electric-delete-forward (c-)
+@findex electric-delete-forward @r{(c-)}
This function, which is bound to @kbd{C-d} by default, works just like
@code{c-electric-backspace} but in the forward direction. When it
doesn't do an ``electric'' deletion of the following whitespace, it
@item @code{c-delete-function}
@vindex c-delete-function
-@vindex delete-function (c-)
+@vindex delete-function @r{(c-)}
@findex delete-char
Hook that gets called by @code{c-electric-delete-forward} when it
doesn't do an ``electric'' deletion of the following whitespace. The
@kindex C-c C-DEL
@kindex C-c DEL
@findex c-hungry-delete-backwards
-@findex hungry-delete-backwards (c-)
+@findex hungry-delete-backwards @r{(c-)}
Delete any amount of whitespace in the backwards direction (regardless
whether hungry-delete mode is enabled or not). This command is bound
to both @kbd{C-c C-@key{DEL}} and @kbd{C-c @key{DEL}}, since the more
@kindex C-c C-<DELETE>
@kindex C-c <DELETE>
@findex c-hungry-delete-forward
-@findex hungry-delete-forward (c-)
+@findex hungry-delete-forward @r{(c-)}
Delete any amount of whitespace in the forward direction (regardless
whether hungry-delete mode is enabled or not). This command is bound
to both @kbd{C-c C-@key{DELETE}} and @kbd{C-c @key{DELETE}} for the
those two keys depends on the flavor of (X)Emacs you are using.
@findex c-electric-delete
-@findex electric-delete (c-)
+@findex electric-delete @r{(c-)}
@findex c-hungry-delete
-@findex hungry-delete (c-)
+@findex hungry-delete @r{(c-)}
@vindex delete-key-deletes-forward
In XEmacs 20.3 and beyond, the @key{Backspace} key is bound to
@code{c-electric-backspace} and the @key{Delete} key is bound to
nomenclature and treat them as separate words:
@findex c-forward-subword
-@findex forward-subword (c-)
+@findex forward-subword @r{(c-)}
@findex c-backward-subword
-@findex backward-subword (c-)
+@findex backward-subword @r{(c-)}
@findex c-mark-subword
-@findex mark-subword (c-)
+@findex mark-subword @r{(c-)}
@findex c-kill-subword
-@findex kill-subword (c-)
+@findex kill-subword @r{(c-)}
@findex c-backward-kill-subword
-@findex backward-kill-subword (c-)
+@findex backward-kill-subword @r{(c-)}
@findex c-transpose-subwords
-@findex transpose-subwords (c-)
+@findex transpose-subwords @r{(c-)}
@findex c-capitalize-subword
-@findex capitalize-subword (c-)
+@findex capitalize-subword @r{(c-)}
@findex c-upcase-subword
-@findex upcase-subword (c-)
+@findex upcase-subword @r{(c-)}
@findex c-downcase-subword
-@findex downcase-subword (c-)
+@findex downcase-subword @r{(c-)}
@multitable @columnfractions .20 .40 .40
@c This could be converted to @headitem when we require Texinfo 4.7
@iftex
@item @kbd{C-c .} (@code{c-set-style})
@kindex C-c .
@findex c-set-style
-@findex set-style (c-)
+@findex set-style @r{(c-)}
Switch to the specified style in the current buffer. Use like this:
@example
@item @kbd{C-c :} (@code{c-scope-operator})
@kindex C-c :
@findex c-scope-operator
-@findex scope-operator (c-)
+@findex scope-operator @r{(c-)}
In C++, it is also sometimes desirable to insert the double-colon scope
operator without performing the electric behavior of colon insertion.
@kbd{C-c :} does just this.
@item @kbd{C-c C-z} (@code{c-display-defun-name})
@kindex C-c C-z
@findex c-display-defun-name
-@findex display-defun-name (c-)
+@findex display-defun-name @r{(c-)}
Display the current function name, if any, in the minibuffer.
Additionally, if a prefix argument is given, push the function name to
the kill ring. If there is no current function,
@item @kbd{C-c C-\} (@code{c-backslash-region})
@kindex C-c C-\
@findex c-backslash-region
-@findex backslash-region (c-)
+@findex backslash-region @r{(c-)}
This function inserts and aligns or deletes end-of-line backslashes in
the current region. These are typically used in multi-line macros.
@item @kbd{C-c C-e} (@code{c-macro-expand})
@kindex C-c C-e
@findex c-macro-expand
-@findex macro-expand (c-)
+@findex macro-expand @r{(c-)}
This command expands C, C++, Objective C or Pike macros in the region,
using an appropriate external preprocessor program. Normally it
displays its output in a temporary buffer, but if you give it a prefix
@item
@vindex font-lock-warning-face
@vindex c-invalid-face
-@vindex invalid-face (c-)
+@vindex invalid-face @r{(c-)}
Some kinds of syntactic errors are fontified with
@code{font-lock-warning-face} in Emacs. In older XEmacs versions
there's no corresponding standard face, so there a special
the special markup inside them.
@defopt c-doc-comment-style
-@vindex doc-comment-style (c-)
+@vindex doc-comment-style @r{(c-)}
This is a style variable that specifies which documentation comment
style to recognize, e.g., @code{javadoc} for Javadoc comments.
reinitialize.
@findex c-setup-doc-comment-style
-@findex setup-doc-comment-style (c-)
+@findex setup-doc-comment-style @r{(c-)}
Note also that when @ccmode{} starts up, the other variables are
modified before the mode hooks are run. If you change this variable in
a mode hook, you'll have to call @code{c-setup-doc-comment-style}
@code{c-asymmetry-fontification-flag}.
@defvar c-asymmetry-fontification-flag
-@vindex asymmetry-fontification-flag (c-)
+@vindex asymmetry-fontification-flag @r{(c-)}
When @code{c-asymmetry-fontification-flag} is non-nil (which it is by
default), code like the above, with white space either before or after
the operator, but not both, is fontified as a declaration. When the
those set by @code{c-default-style}.
@defvar c-initialization-hook
-@vindex initialization-hook (c-)
+@vindex initialization-hook @r{(c-)}
Hook run only once per Emacs session, when @ccmode{} is initialized.
This is a good place to change key bindings (or add new ones) in any
of the @ccmode{} key maps. @xref{Sample Init File}.
@end defvar
@defvar c-mode-common-hook
-@vindex mode-common-hook (c-)
+@vindex mode-common-hook @r{(c-)}
Common hook across all languages. It's run immediately before the
language specific hook.
@end defvar
@item
@vindex c-old-style-variable-behavior
-@vindex old-style-variable-behavior (c-)
+@vindex old-style-variable-behavior @r{(c-)}
The default global binding of any style variable (with two exceptions
- see below) is the special symbol @code{set-from-style}. When the
style system initializes a buffer-local copy of a style variable for a
list, @ref{File Styles}.
@defopt c-default-style
-@vindex default-style (c-)
+@vindex default-style @r{(c-)}
This variable specifies which style to install by default in new
buffers. It takes either a style name string, or an association list
of major mode symbols to style names:
@end defopt
@defvar c-indentation-style
-@vindex indentation-style (c-)
+@vindex indentation-style @r{(c-)}
This variable always contains the buffer's current style name, as a
string.
@end defvar
provides the function @code{c-add-style} for this purpose.
@defun c-add-style stylename description &optional set-p
-@findex add-style (c-)
+@findex add-style @r{(c-)}
Add or update a style called @var{stylename}, a string.
@var{description} is the new style definition in the form described
above. If @var{stylename} already exists in @code{c-style-alist} then
@end defun
@defvar c-style-alist
-@vindex style-alist (c-)
+@vindex style-alist @r{(c-)}
This is the variable that holds the definitions for the styles. It
should not be changed directly; use @code{c-add-style} instead.
@end defvar
@findex c-guess-no-install
@findex c-guess-buffer-no-install
@findex c-guess-region-no-install
-@findex guess-no-install (c-)
-@findex guess-buffer-no-install (c-)
-@findex guess-region-no-install (c-)
+@findex guess-no-install @r{(c-)}
+@findex guess-buffer-no-install @r{(c-)}
+@findex guess-region-no-install @r{(c-)}
These commands analyze a part of the current buffer and guess the
style from it.
@findex c-guess
@findex c-guess-buffer
@findex c-guess-region
-@findex guess (c-)
-@findex guess-buffer (c-)
-@findex guess-region (c-)
+@findex guess @r{(c-)}
+@findex guess-buffer @r{(c-)}
+@findex guess-region @r{(c-)}
These commands analyze a part of the current buffer, guess the style
from it, then install the guessed style on the buffer. The guessed
style is given a name based on the buffer's absolute file name, and
@end table
@defopt c-guess-region-max
-@vindex guess-region-max (c-)
+@vindex guess-region-max @r{(c-)}
This variable, default 50000, is the size in bytes of the buffer
portion examined by c-guess and c-guess-no-install. If set to
@code{nil}, the entire buffer is examined.
@end defopt
@defopt c-guess-offset-threshold
-@vindex guess-offset-threshold (c-)
+@vindex guess-offset-threshold @r{(c-)}
This variable, default 10, is the maximum offset, either outwards or
inwards, which will be taken into account by the analysis process.
Any offset bigger than this will be ignored. For no limit, set this
@table @asis
@item @kbd{M-x c-guess-install}
@findex c-guess-install
-@findex guess-install (c-)
+@findex guess-install @r{(c-)}
Set the current buffer's style to the guessed style. This prompts you
to enter an optional new style name to give to the guessed style. By
@item @kbd{M-x c-guess-view}
@findex c-guess-view
-@findex guess-view (c-)
+@findex guess-view @r{(c-)}
Display the most recently guessed style in a temporary buffer. This
display is in the form of a @code{c-add-style} form (@pxref{Adding
Styles}) which can be easily copied to your @file{.emacs}. You will
on a per-file basis:
@defvar c-file-style
-@vindex file-style (c-)
+@vindex file-style @r{(c-)}
Set this variable to a style name string in the Local Variables list.
From now on, when you visit the file, @ccmode{} will automatically set
the file's style to this one using @code{c-set-style}.
@end defvar
@defvar c-file-offsets
-@vindex file-offsets (c-)
+@vindex file-offsets @r{(c-)}
Set this variable (in the Local Variables list) to an association list
of the same format as @code{c-offsets-alist}. From now on, when you
visit the file, @ccmode{} will automatically institute these offsets
relevant variables as necessary.
@vindex c-comment-prefix-regexp
-@vindex comment-prefix-regexp (c-)
+@vindex comment-prefix-regexp @r{(c-)}
@cindex comment line prefix
@vindex comment-start
@vindex comment-end
according to the language syntax and the comment line prefix.
@defopt c-comment-prefix-regexp
-@vindex comment-prefix-regexp (c-)
+@vindex comment-prefix-regexp @r{(c-)}
This style variable contains the regexp used to recognize the
@dfn{comment line prefix}, which is the line decoration that starts
every line in a comment. The variable is either the comment line
block comments.
@findex c-setup-paragraph-variables
-@findex setup-paragraph-variables (c-)
+@findex setup-paragraph-variables @r{(c-)}
Also note that since @ccmode{} uses the value of
@code{c-comment-prefix-regexp} to set up several other variables at
mode initialization, there won't be any effect if you just change it
@end example
@findex c-setup-filladapt
-@findex setup-filladapt (c-)
+@findex setup-filladapt @r{(c-)}
@findex filladapt-mode
@vindex filladapt-mode
@cindex Filladapt mode
@end example
@defopt c-block-comment-prefix
-@vindex block-comment-prefix (c-)
+@vindex block-comment-prefix @r{(c-)}
@vindex c-comment-continuation-stars
-@vindex comment-continuation-stars (c-)
+@vindex comment-continuation-stars @r{(c-)}
Normally the comment line prefix inserted for a new line inside a
comment is deduced from other lines in it. However there's one
situation when there's no hint about what the prefix should look like,
@end defopt
@defopt c-ignore-auto-fill
-@vindex ignore-auto-fill (c-)
+@vindex ignore-auto-fill @r{(c-)}
When auto fill mode is enabled, @ccmode{} can selectively ignore it
depending on the context the line break would occur in, e.g., to never
break a line automatically inside a string literal. This variable
is useful when the auto newlines depend on the code around the brace.
@defopt c-hanging-braces-alist
-@vindex hanging-braces-alist (c-)
+@vindex hanging-braces-alist @r{(c-)}
This variable is an association list which maps syntactic symbols to
lists of places to insert a newline. @xref{Association
@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@vindex c-hanging-braces-alist
-@vindex hanging-braces-alist (c-)
+@vindex hanging-braces-alist @r{(c-)}
@cindex action functions
Syntactic symbols aren't the only place where you can customize
@ccmode{} with the lisp equivalent of callback functions. Remember
of them (i.e., @code{nil}).
@defvar c-syntactic-context
-@vindex syntactic-context (c-)
+@vindex syntactic-context @r{(c-)}
During the call to the indentation or brace hanging @var{action}
function, this variable is bound to the full syntactic analysis list.
This might be, for example, @samp{((block-close 73))}. Don't ever
@end example
@findex c-snug-do-while
-@findex snug-do-while (c-)
+@findex snug-do-while @r{(c-)}
This function simply looks to see if the brace closes a ``do-while''
clause and if so, returns the list @samp{(before)} indicating
that a newline should be inserted before the brace, but not after it.
@cindex customization, colon hanging
@vindex c-hanging-colons-alist
-@vindex hanging-colons-alist (c-)
+@vindex hanging-colons-alist @r{(c-)}
Using a mechanism similar to brace hanging (@pxref{Hanging Braces}),
colons can also be made to hang using the style variable
newly typed colon.
@defopt c-hanging-colons-alist
-@vindex hanging-colons-alist (c-)
+@vindex hanging-colons-alist @r{(c-)}
@table @asis
@item The Key: the syntactic symbol
@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@defopt c-hanging-semi&comma-criteria
-@vindex hanging-semi&comma-criteria (c-)
+@vindex hanging-semi&comma-criteria @r{(c-)}
This style variable takes a list of functions; these get called when
you type a semicolon or comma. The functions are called in order
without arguments. When these functions are entered, point is just
@end defopt
@defun c-semi&comma-no-newlines-before-nonblanks
-@findex semi&comma-no-newlines-before-nonblanks (c-)
+@findex semi&comma-no-newlines-before-nonblanks @r{(c-)}
This is an example of a criteria function, provided by @ccmode{}. It
prevents newlines from being inserted after semicolons when there is a
non-blank following line. Otherwise, it makes no determination. To
@end defun
@defun c-semi&comma-inside-parenlist
-@findex semi&comma-inside-parenlist (c-)
+@findex semi&comma-inside-parenlist @r{(c-)}
@defunx c-semi&comma-no-newlines-for-oneline-inliners
-@findex semi&comma-no-newlines-for-oneline-inliners (c-)
+@findex semi&comma-no-newlines-for-oneline-inliners @r{(c-)}
The function @code{c-semi&comma-inside-parenlist} is what prevents
newlines from being inserted inside the parenthesis list of @code{for}
statements. In addition to
construct does not occur within a literal (@pxref{Auto-newlines}).
@defopt c-cleanup-list
-@vindex cleanup-list (c-)
+@vindex cleanup-list @r{(c-)}
@cindex literal
You configure @ccmode{}'s clean-ups by setting the style variable
@end example
@defopt c-max-one-liner-length
-@vindex max-one-liner-length (c-)
+@vindex max-one-liner-length @r{(c-)}
The maximum length of the resulting line for which the clean-up
@code{one-liner-defun} will be triggered. This length is that of the entire
line, including any leading whitespace and any trailing comment. Its
the variable interactively, @ref{Minor Modes}).
@defopt c-syntactic-indentation
-@vindex syntactic-indentation (c-)
+@vindex syntactic-indentation @r{(c-)}
When this is non-@code{nil} (which it is by default), the indentation
of code is done according to its syntactic structure. When it's
@code{nil}, every line is just indented to the same level as the
@code{c-special-indent-hook} (@pxref{Other Indentation}).
@defun c-guess-basic-syntax
-@findex guess-basic-syntax (c-)
+@findex guess-basic-syntax @r{(c-)}
Determine the syntactic context of the current line.
@end defun
@item @kbd{C-c C-s} (@code{c-show-syntactic-information})
@kindex C-c C-s
@findex c-show-syntactic-information
-@findex show-syntactic-information (c-)
+@findex show-syntactic-information @r{(c-)}
This command calculates the syntactic analysis of the current line and
displays it in the minibuffer. The command also highlights the anchor
position(s).
@cindex syntactic symbols, brief list
@vindex c-offsets-alist
-@vindex offsets-alist (c-)
+@vindex offsets-alist @r{(c-)}
This section is a complete list of the syntactic symbols which appear
in the @code{c-offsets-alist} style variable, along with brief
descriptions. The previous section (@pxref{Syntactic Analysis})
@code{c-basic-offset}:
@defopt c-basic-offset
-@vindex basic-offset (c-)
+@vindex basic-offset @r{(c-)}
This style variable holds the basic offset between indentation levels.
It's factory default is 4, but all the built-in styles set it
themselves, to some value between 2 (for @code{gnu} style) and 8 (for
@ccmode{}'s style system are given in @ref{Style Variables}.
@defopt c-offsets-alist
-@vindex offsets-alist (c-)
+@vindex offsets-alist @r{(c-)}
This is an alist which associates an offset with each syntactic
symbol. This @dfn{offset} is a rule specifying how to indent a line
whose syntactic context matches the symbol. @xref{Syntactic
@end defopt
@deffn Command c-set-offset (@kbd{C-c C-o})
-@findex set-offset (c-)
+@findex set-offset @r{(c-)}
@kindex C-c C-o
This command changes the entry for a syntactic symbol in the current
binding of @code{c-offsets-alist}, or it inserts a new entry if there
@end table
@vindex c-strict-syntax-p
-@vindex strict-syntax-p (c-)
+@vindex strict-syntax-p @r{(c-)}
If an offset specification evaluates to @code{nil}, then a relative
offset of 0 (zero) is used@footnote{There is however a variable
@code{c-strict-syntax-p} that when set to non-@code{nil} will cause an
@c Move this bit to "Styles" (2005/10/7)
@deffn Command c-set-offset symbol offset
-@findex set-offset (c-)
+@findex set-offset @r{(c-)}
@kindex C-c C-o
This is the command bound to @kbd{C-c C-o}. It provides a convenient
way to set offsets on @code{c-offsets-alist} both interactively (see
parentheses and statements within brace blocks.
@defun c-lineup-close-paren
-@findex lineup-close-paren (c-)
+@findex lineup-close-paren @r{(c-)}
Line up the closing paren under its corresponding open paren if the
open paren is followed by code. If the open paren ends its line, no
indentation is added. E.g.:
@anchor{c-lineup-arglist-close-under-paren}
@defun c-lineup-arglist-close-under-paren
-@findex lineup-arglist-close-under-paren (c-)
+@findex lineup-arglist-close-under-paren @r{(c-)}
Set your @code{arglist-close} syntactic symbol to this line-up function
so that parentheses that close argument lists will line up under the
parenthesis that opened the argument list. It can also be used with
@comment ------------------------------------------------------------
@defun c-indent-one-line-block
-@findex indent-one-line-block (c-)
+@findex indent-one-line-block @r{(c-)}
Indent a one line block @code{c-basic-offset} extra. E.g.:
@example
@comment ------------------------------------------------------------
@defun c-indent-multi-line-block
-@findex indent-multi-line-block (c-)
+@findex indent-multi-line-block @r{(c-)}
Indent a multiline block @code{c-basic-offset} extra. E.g.:
@example
@comment ------------------------------------------------------------
@defun c-lineup-runin-statements
-@findex lineup-runin-statements (c-)
+@findex lineup-runin-statements @r{(c-)}
Line up statements for coding standards which place the first statement
in a block on the same line as the block opening brace@footnote{Run-in
style doesn't really work too well. You might need to write your own
@comment ------------------------------------------------------------
@defun c-lineup-inexpr-block
-@findex lineup-inexpr-block (c-)
+@findex lineup-inexpr-block @r{(c-)}
This can be used with the in-expression block symbols to indent the
whole block to the column where the construct is started. E.g., for Java
anonymous classes, this lines up the class under the @samp{new} keyword,
@comment ------------------------------------------------------------
@defun c-lineup-after-whitesmith-blocks
-@findex lineup-after-whitesmith-blocks (c-)
+@findex lineup-after-whitesmith-blocks @r{(c-)}
Compensate for Whitesmith style indentation of blocks. Due to the way
@ccmode{} calculates anchor positions for normal lines inside blocks,
this function is necessary for those lines to get correct Whitesmith
@comment ------------------------------------------------------------
@defun c-lineup-whitesmith-in-block
-@findex lineup-whitesmith-in-block (c-)
+@findex lineup-whitesmith-in-block @r{(c-)}
Line up lines inside a block in Whitesmith style. It's done in a way
that works both when the opening brace hangs and when it doesn't. E.g.:
contained within parentheses.
@defun c-lineup-arglist
-@findex lineup-arglist (c-)
+@findex lineup-arglist @r{(c-)}
Line up the current argument line under the first argument.
As a special case, if an argument on the same line as the open
@comment ------------------------------------------------------------
@defun c-lineup-arglist-intro-after-paren
-@findex lineup-arglist-intro-after-paren (c-)
+@findex lineup-arglist-intro-after-paren @r{(c-)}
Line up a line to just after the open paren of the surrounding paren or
brace block.
@comment ------------------------------------------------------------
@defun c-lineup-multi-inher
-@findex lineup-multi-inher (c-)
+@findex lineup-multi-inher @r{(c-)}
Line up the classes in C++ multiple inheritance clauses and member
initializers under each other. E.g.:
@comment ------------------------------------------------------------
@defun c-lineup-java-inher
-@findex lineup-java-inher (c-)
+@findex lineup-java-inher @r{(c-)}
Line up Java implements and extends declarations. If class names
follow on the same line as the @samp{implements}/@samp{extends}
keyword, they are lined up under each other. Otherwise, they are
@comment ------------------------------------------------------------
@defun c-lineup-java-throws
-@findex lineup-java-throws (c-)
+@findex lineup-java-throws @r{(c-)}
Line up Java throws declarations. If exception names follow on the
same line as the throws keyword, they are lined up under each other.
Otherwise, they are indented by adding @code{c-basic-offset} to the
@comment ------------------------------------------------------------
@defun c-lineup-template-args
-@findex lineup-template-args (c-)
+@findex lineup-template-args @r{(c-)}
Line up the arguments of a template argument list under each other, but
only in the case where the first argument is on the same line as the
opening @samp{<}.
@comment ------------------------------------------------------------
@defun c-lineup-ObjC-method-call
-@findex lineup-ObjC-method-call (c-)
+@findex lineup-ObjC-method-call @r{(c-)}
For Objective-C code, line up selector args as Emacs Lisp mode does
with function args: go to the position right after the message receiver,
and if you are at the end of the line, indent the current line
@comment ------------------------------------------------------------
@defun c-lineup-ObjC-method-args
-@findex lineup-ObjC-method-args (c-)
+@findex lineup-ObjC-method-args @r{(c-)}
For Objective-C code, line up the colons that separate args. The colon
on the current line is aligned with the one on the first line.
@comment ------------------------------------------------------------
@defun c-lineup-ObjC-method-args-2
-@findex lineup-ObjC-method-args-2 (c-)
+@findex lineup-ObjC-method-args-2 @r{(c-)}
Similar to @code{c-lineup-ObjC-method-args} but lines up the colon on
the current line with the colon on the previous line.
line.
@defun c-lineup-argcont
-@findex lineup-argcont (c-)
+@findex lineup-argcont @r{(c-)}
Line up a continued argument. E.g.:
@example
@comment ------------------------------------------------------------
@defun c-lineup-arglist-operators
-@findex lineup-arglist-operators (c-)
+@findex lineup-arglist-operators @r{(c-)}
Line up lines starting with an infix operator under the open paren.
Return @code{nil} on lines that don't start with an operator, to leave
those cases to other line-up functions. Example:
@comment ------------------------------------------------------------
@defun c-lineup-assignments
-@findex lineup-assignments (c-)
+@findex lineup-assignments @r{(c-)}
Line up the current line after the assignment operator on the first line
in the statement. If there isn't any, return @code{nil} to allow stacking with
other line-up functions. If the current line contains an assignment
@comment ------------------------------------------------------------
@defun c-lineup-math
-@findex lineup-math (c-)
+@findex lineup-math @r{(c-)}
Like @code{c-lineup-assignments} but indent with @code{c-basic-offset}
if no assignment operator was found on the first line. I.e., this
function is the same as specifying a list @code{(c-lineup-assignments
@comment ------------------------------------------------------------
@defun c-lineup-cascaded-calls
-@findex lineup-cascaded-calls (c-)
+@findex lineup-cascaded-calls @r{(c-)}
Line up ``cascaded calls'' under each other. If the line begins with
@code{->} or @code{.} and the preceding line ends with one or more
function calls preceded by the same token, then the arrow is lined up
@comment ------------------------------------------------------------
@defun c-lineup-streamop
-@findex lineup-streamop (c-)
+@findex lineup-streamop @r{(c-)}
Line up C++ stream operators (i.e., @samp{<<} and @samp{>>}).
@workswith @code{stream-op}.
@comment ------------------------------------------------------------
@defun c-lineup-string-cont
-@findex lineup-string-cont (c-)
+@findex lineup-string-cont @r{(c-)}
Line up a continued string under the one it continues. A continued
string in this sense is where a string literal follows directly after
another one. E.g.:
of comment structure.
@defun c-lineup-C-comments
-@findex lineup-C-comments (c-)
+@findex lineup-C-comments @r{(c-)}
Line up C block comment continuation lines. Various heuristics are used
to handle most of the common comment styles. Some examples:
@comment ------------------------------------------------------------
@defun c-lineup-comment
-@findex lineup-comment (c-)
+@findex lineup-comment @r{(c-)}
Line up a comment-only line according to the style variable
@code{c-comment-only-line-offset}. If the comment is lined up with a
comment starter on the previous line, that alignment is preserved.
@defopt c-comment-only-line-offset
-@vindex comment-only-line-offset (c-)
+@vindex comment-only-line-offset @r{(c-)}
This style variable specifies the extra offset for the line. It can
contain an integer or a cons cell of the form
@comment ------------------------------------------------------------
@defun c-lineup-knr-region-comment
-@findex lineup-knr-region-comment (c-)
+@findex lineup-knr-region-comment @r{(c-)}
Line up a comment in the ``K&R region'' with the declaration. That is
the region between the function or class header and the beginning of the
block. E.g.:
any earlier category.
@defun c-lineup-dont-change
-@findex lineup-dont-change (c-)
+@findex lineup-dont-change @r{(c-)}
This lineup function makes the line stay at whatever indentation it
already has; think of it as an identity function for lineups.
@comment ------------------------------------------------------------
@defun c-lineup-cpp-define
-@findex lineup-cpp-define (c-)
+@findex lineup-cpp-define @r{(c-)}
Line up macro continuation lines according to the indentation of the
construct preceding the macro. E.g.:
@comment ------------------------------------------------------------
@defun c-lineup-gcc-asm-reg
-@findex lineup-gcc-asm-reg (c-)
+@findex lineup-gcc-asm-reg @r{(c-)}
Line up a gcc asm register under one on a previous line.
@example
@comment ------------------------------------------------------------
@defun c-lineup-topmost-intro-cont
-@findex lineup-topmost-intro-cont (c-)
+@findex lineup-topmost-intro-cont @r{(c-)}
Line up declaration continuation lines zero or one indentation
step@footnote{This function is mainly provided to mimic the behavior of
CC Mode 5.28 and earlier where this case wasn't handled consistently so
(@code{c-langelem-sym}, etc.)@: described below.
@vindex c-syntactic-element
-@vindex syntactic-element (c-)
+@vindex syntactic-element @r{(c-)}
@vindex c-syntactic-context
-@vindex syntactic-context (c-)
+@vindex syntactic-context @r{(c-)}
Some syntactic symbols, e.g., @code{arglist-cont-nonempty}, have more
info in the syntactic element: typically other positions that can be
interesting besides the anchor position. That info can't be accessed
@code{c-syntactic-element} and everywhere else. The functions are:
@defun c-langelem-sym langelem
-@findex langelem-sym (c-)
+@findex langelem-sym @r{(c-)}
Return the syntactic symbol in @var{langelem}.
@end defun
@defun c-langelem-pos langelem
-@findex langelem-pos (c-)
+@findex langelem-pos @r{(c-)}
Return the anchor position in @var{langelem}, or @code{nil} if there is none.
@end defun
@defun c-langelem-col langelem &optional preserve-point
-@findex langelem-col (c-)
+@findex langelem-col @r{(c-)}
Return the column of the anchor position in @var{langelem}. Also move
the point to that position unless @var{preserve-point} is
non-@code{nil}.
@end defun
@defun c-langelem-2nd-pos langelem
-@findex langelem-2nd-pos (c-)
+@findex langelem-2nd-pos @r{(c-)}
Return the secondary position in @var{langelem}, or @code{nil} if there
is none.
Here are the remaining odds and ends regarding indentation:
@defopt c-label-minimum-indentation
-@vindex label-minimum-indentation (c-)
+@vindex label-minimum-indentation @r{(c-)}
In @samp{gnu} style (@pxref{Built-in Styles}), a minimum indentation is
imposed on lines inside code blocks. This minimum indentation is
controlled by this style variable. The default value is 1.
@findex c-gnu-impose-minimum
-@findex gnu-impose-minimum (c-)
+@findex gnu-impose-minimum @r{(c-)}
It's the function @code{c-gnu-impose-minimum} that enforces this minimum
indentation. It must be present on @code{c-special-indent-hook} to
work.
@end defopt
@defopt c-special-indent-hook
-@vindex special-indent-hook (c-)
+@vindex special-indent-hook @r{(c-)}
This style variable is a standard hook variable that is called after
every line is indented by @ccmode{}. It is called only if
@code{c-syntactic-indentation} is non-@code{nil} (which it is by
by setting the following user option:
@defopt c-syntactic-indentation-in-macros
-@vindex syntactic-indentation-in-macros (c-)
+@vindex syntactic-indentation-in-macros @r{(c-)}
Enable syntactic analysis inside macros, which is the default. If this
is @code{nil}, all lines inside macro definitions are analyzed as
@code{cpp-macro-cont}.
customized with these variables:
@defopt c-backslash-column
-@vindex backslash-column (c-)
+@vindex backslash-column @r{(c-)}
@defoptx c-backslash-max-column
-@vindex backslash-max-column (c-)
+@vindex backslash-max-column @r{(c-)}
These variables control the alignment columns for line continuation
backslashes in multiline macros. They are used by the functions that
automatically insert or align such backslashes,
@end defopt
@defopt c-auto-align-backslashes
-@vindex auto-align-backslashes (c-)
+@vindex auto-align-backslashes @r{(c-)}
Align automatically inserted line continuation backslashes if
non-@code{nil}. When line continuation backslashes are inserted
automatically for line breaks in multiline macros, e.g., by
doesn't matter whether or not such a macro has a parameter list:
@defopt c-macro-names-with-semicolon
-@vindex macro-names-with-semicolon (c-)
+@vindex macro-names-with-semicolon @r{(c-)}
This buffer-local variable specifies which macros have semicolons.
After setting its value, you need to call
@code{c-make-macro-with-semi-re} for it to take effect. It should be
@end defopt
@defun c-make-macro-with-semi-re
-@findex make-macro-with-semi-re (c-)
+@findex make-macro-with-semi-re @r{(c-)}
Call this (non-interactive) function, which sets internal variables,
each time you change the value of @code{c-macro-names-with-semicolon}
after the major mode function has run. It takes no arguments, and its
constitute noise macros.
@defopt c-noise-macro-names
-@vindex noise-macro-names (c-)
+@vindex noise-macro-names @r{(c-)}
This variable is a list of names of noise macros which never have
parenthesized arguments. Each element is a string, and must be a
valid identifier. An element in @code{c-noise-macro-names} must not
@end defopt
@defopt c-noise-macro-with-parens-names
-@vindex noise-macro-with-parens-names (c-)
+@vindex noise-macro-with-parens-names @r{(c-)}
This variable is a list of names of noise macros which optionally have
arguments in parentheses. Each element of the list is a string, and
must be a valid identifier. An element in
@end defopt
@defun c-make-noise-macro-regexps
-@findex make-noise-macro-regexps (c-)
+@findex make-noise-macro-regexps @r{(c-)}
Call this (non-interactive) function, which sets internal variables,
on changing the value of @code{c-noise-macro-names} or
@code{c-noise-macro-with-parens-names} after the major mode's function
The stuff that didn't fit in anywhere else is documented here.
@defopt c-require-final-newline
-@vindex require-final-newline (c-)
+@vindex require-final-newline @r{(c-)}
Controls whether a final newline is enforced when the file is saved.
The value is an association list that for each language mode specifies
the value to give to @code{require-final-newline} (@pxref{Saving
@end defopt
@defopt c-echo-syntactic-information-p
-@vindex echo-syntactic-information-p (c-)
+@vindex echo-syntactic-information-p @r{(c-)}
If non-@code{nil}, the syntactic analysis for the current line is shown
in the echo area when it's indented (unless
@code{c-syntactic-indentation} is @code{nil}). That's useful when
@end defopt
@defopt c-report-syntactic-errors
-@vindex report-syntactic-errors (c-)
+@vindex report-syntactic-errors @r{(c-)}
If non-@code{nil}, certain syntactic errors are reported with a ding and
a message, for example when an @code{else} is indented for which there
is no corresponding @code{if}.
@findex defun-prompt-regexp
@vindex c-Java-defun-prompt-regexp
-@vindex Java-defun-prompt-regexp (c-)
+@vindex Java-defun-prompt-regexp @r{(c-)}
A special note about @code{defun-prompt-regexp} in Java mode: The common
style is to hang the opening braces of functions and classes on the
right side of the line, and that doesn't work well with the Emacs
Emacs approach to finding the defun starts.
@vindex c-enable-xemacs-performance-kludge-p
-@vindex enable-xemacs-performance-kludge-p (c-)
+@vindex enable-xemacs-performance-kludge-p @r{(c-)}
XEmacs users can set the variable
@code{c-enable-xemacs-performance-kludge-p} to non-@code{nil}. This
tells @ccmode{} to use XEmacs-specific built-in functions which, in some
@kindex C-c C-b
@findex c-submit-bug-report
-@findex submit-bug-report (c-)
+@findex submit-bug-report @r{(c-)}
To report bugs, use the @kbd{C-c C-b} (bound to
@code{c-submit-bug-report}) command. This provides vital information
we need to reproduce your problem. Make sure you include a concise,
overriding a verbose option in the @env{GZIP} environment variable.
@item dired-guess-shell-znew-switches nil
-@vindex dired-guess-shell-znew-switches nil
+@vindex dired-guess-shell-znew-switches
@cindex @code{znew}
Default: @code{nil}
smaller than the @file{.gz} file.
@item dired-shell-command-history nil
-@vindex dired-shell-command-history nil
+@vindex dired-shell-command-history
History list for commands that read dired-shell commands.
@end table
@code{ediff-use-last-dir} is not @code{nil}, Ediff will offer
previously entered directories as defaults (which will be maintained
separately for each type of file, A, B, or C).
-@vindex @code{ediff-use-last-dir}
+@vindex ediff-use-last-dir
All the above functions use the POSIX @code{diff} or @code{diff3} programs
to find differences between two files. They process the @code{diff} output
If @code{t}, all variant buffers are made read-only at Ediff startup.
@item ediff-keep-variants
-@vindex @code{ediff-keep-variants}
+@vindex ediff-keep-variants
The default is @code{t}, meaning that the buffers being compared or merged will
be preserved when Ediff quits. Setting this to @code{nil} causes Ediff to
offer the user a chance to delete these buffers (if they are not modified).
unconditionally (e.g., by making @code{ediff-janitor} into one of these hooks).
@item ediff-keep-tmp-versions
-@vindex @code{ediff-keep-tmp-versions}
+@vindex ediff-keep-tmp-versions
Default is @code{nil}. If @code{t}, the versions of the files being
compared or merged using operations such as @code{ediff-revision} or
@code{ediff-merge-revisions} are not deleted on exit. The normal action is
to clean up and delete these version files.
@item ediff-grab-mouse
-@vindex @code{ediff-grab-mouse}
+@vindex ediff-grab-mouse
Default is @code{t}. Normally, Ediff grabs mouse and puts it in its
control frame. This is useful since the user can be sure that when he
needs to type an Ediff command the focus will be in an appropriate Ediff's
@cindex customizing MH-E
@cindex setting options
@findex customize-option
-@vindex mh-lpr-command-format, example
+@vindex mh-lpr-command-format@r{, example}
Many string or integer options are easy to modify using @kbd{M-x
customize-option}. For example, to modify the option that controls
@cindex option, turning on and off
@cindex t
@findex customize-option
-@vindex mh-bury-show-buffer-flag, example
+@vindex mh-bury-show-buffer-flag@r{, example}
Options can also hold boolean values. In Emacs Lisp, the boolean
values are @code{nil}, which means false, and @code{t}, which means
default, which places the MH-Show buffer at the bottom of the buffer
stack.
-@vindex mh-mhl-format-file, example
+@vindex mh-mhl-format-file@r{, example}
The text usually says to turn on an option by setting it to a
@emph{non-@code{nil}} value, because sometimes values other than
the message numbers from outside of MH-E.
@findex mh-execute-commands
-@findex mh-rescan-folder, example
-@findex mh-show, example
-@vindex mh-inc-folder-hook, example
+@findex mh-rescan-folder@r{, example}
+@findex mh-show@r{, example}
+@vindex mh-inc-folder-hook@r{, example}
@smalllisp
@group
@filbreak
@end iftex
-@findex mh-rmail, example
+@findex mh-rmail@r{, example}
@smalllisp
@group
folder in MH-Folder mode. This could be used to set your own key
bindings, for example:
-@vindex mh-folder-mode-hook, example
+@vindex mh-folder-mode-hook@r{, example}
@smalllisp
@group
@findex mh-execute-commands
@kindex q
@vindex mh-before-quit-hook
-@vindex mh-before-quit-hook, example
+@vindex mh-before-quit-hook@r{, example}
@vindex mh-quit-hook
-@vindex mh-quit-hook, example
+@vindex mh-quit-hook@r{, example}
The two hooks @code{mh-before-quit-hook} and @code{mh-quit-hook} are
called by @kbd{q}. The former one is called before the quit occurs, so
where the cursor should go. Here's an example of how you would use
this hook.
-@findex mh-insert-signature, example
+@findex mh-insert-signature@r{, example}
@smalllisp
@group
@vindex mh-adaptive-cmd-note-flag
@vindex mh-scan-format-file
-@vindex mh-scan-format-file, example
+@vindex mh-scan-format-file@r{, example}
The first thing you have to do is tell MH-E to use this file.
Customize @code{mh-scan-format-file} and set its value to @samp{Use
Next, tell MH-E what a valid scan line looks like so that you can at
least display the output of scan in your MH-Folder buffer.
-@vindex mh-scan-valid-regexp, example
+@vindex mh-scan-valid-regexp@r{, example}
@smalllisp
(setq mh-scan-valid-regexp "[0-9]+[+D^ ]$")
should also see why MH-E requires that you include a message number in
the first place.
-@vindex mh-scan-msg-number-regexp, example
-@vindex mh-scan-msg-search-regexp, example
+@vindex mh-scan-msg-number-regexp@r{, example}
+@vindex mh-scan-msg-search-regexp@r{, example}
@smalllisp
(setq mh-scan-msg-number-regexp "^.* \\([0-9]+\\)[+D^ ]$")
In order to get the next and previous commands working, add this.
-@vindex mh-scan-good-msg-regexp, example
+@vindex mh-scan-good-msg-regexp@r{, example}
@smalllisp
(setq mh-scan-good-msg-regexp "^.* \\([0-9]+\\)[+D^ ]$")
between the next and previous messages. Here is the code required to
get this working.
-@vindex set-mh-cmd-note, example
-@vindex mh-scan-cur-msg-number-regexp, example
+@vindex set-mh-cmd-note@r{, example}
+@vindex mh-scan-cur-msg-number-regexp@r{, example}
@smalllisp
(set-mh-cmd-note 76)
Finally, add the following to delete and refile messages.
-@vindex mh-scan-deleted-msg-regexp, example
-@vindex mh-scan-refiled-msg-regexp, example
+@vindex mh-scan-deleted-msg-regexp@r{, example}
+@vindex mh-scan-refiled-msg-regexp@r{, example}
@smalllisp
(setq mh-scan-deleted-msg-regexp "^.* \\([0-9]+\\)D$")
@node Customizing Faces
@section Customizing Faces
-@vindex cvs-header (face)
-@vindex cvs-filename (face)
-@vindex cvs-unknown (face)
-@vindex cvs-handled (face)
-@vindex cvs-need-action (face)
-@vindex cvs-marked (face)
-@vindex cvs-msg (face)
+@vindex cvs-header @r{(face)}
+@vindex cvs-filename @r{(face)}
+@vindex cvs-unknown @r{(face)}
+@vindex cvs-handled @r{(face)}
+@vindex cvs-need-action @r{(face)}
+@vindex cvs-marked @r{(face)}
+@vindex cvs-msg @r{(face)}
PCL-CVS adds a few extra features, including menus, mouse bindings, and
fontification of the @file{*cvs*} buffer. The faces defined for
@cindex LaTeX packages, @code{varioref}
@cindex @code{fancyref}, LaTeX package
@cindex LaTeX packages, @code{fancyref}
-@vindex reftex-vref-is-default (deprecated)
-@vindex reftex-fref-is-default (deprecated)
+@vindex reftex-vref-is-default @r{(deprecated)}
+@vindex reftex-fref-is-default @r{(deprecated)}
In former versions of @RefTeX{} only support for @code{varioref} and
@code{fancyref} was included. @code{varioref} is a @LaTeX{} package to
create cross-references with page information. @code{fancyref} is a
@itemize @bullet
@item
@findex reftex-label
-@vindex LaTeX-label-function, @r{AUCTeX}
+@vindex LaTeX-label-function@r{, AUCTeX}
@kindex C-c C-e
@kindex C-c C-s
-@findex LaTeX-section, @r{AUCTeX}
-@findex TeX-insert-macro, @r{AUCTeX}
+@findex LaTeX-section@r{, AUCTeX}
+@findex TeX-insert-macro@r{, AUCTeX}
@b{@AUCTeX{} calls @code{reftex-label} to insert labels}@*
When a new section is created with @kbd{C-c C-s}, or a new environment
is inserted with @kbd{C-c C-e}, @AUCTeX{} normally prompts for a label to
@item
@findex reftex-arg-label
-@findex TeX-arg-label, @r{AUCTeX function}
+@findex TeX-arg-label@r{, AUCTeX function}
@findex reftex-arg-ref
-@findex TeX-arg-ref, @r{AUCTeX function}
+@findex TeX-arg-ref@r{, AUCTeX function}
@findex reftex-arg-cite
-@findex TeX-arg-cite, @r{AUCTeX function}
+@findex TeX-arg-cite@r{, AUCTeX function}
@findex reftex-arg-index
-@findex TeX-arg-index, @r{AUCTeX function}
-@findex TeX-insert-macro, @r{AUCTeX function}
+@findex TeX-arg-index@r{, AUCTeX function}
+@findex TeX-insert-macro@r{, AUCTeX function}
@kindex C-c @key{RET}
@b{@RefTeX{} supplies macro arguments}@* When you insert a macro
interactively with @kbd{C-c @key{RET}}, @AUCTeX{} normally prompts for
@node Style Files
@subsection Style Files
@cindex Style files, AUCTeX
-@findex TeX-add-style-hook, @r{AUCTeX}
+@findex TeX-add-style-hook@r{, AUCTeX}
Style files are Emacs Lisp files which are evaluated by @AUCTeX{} in
association with the @code{\documentclass} and @code{\usepackage}
commands of a document (@pxref{Style Files,,,auctex}). Support for
@end lisp
@noindent
-@findex LaTeX-add-environments, @r{AUCTeX}
+@findex LaTeX-add-environments@r{, AUCTeX}
while a package @code{myprop} defining a @code{proposition} environment
with @code{\newtheorem} might use
message did not result in a line cited with @samp{Jane>John>}.
@vindex sc-nested-citation-p
-@vindex nested-citation-p (sc-)
+@vindex nested-citation-p @r{(sc-)}
Supercite supports both styles of citation, and the variable
@code{sc-nested-citation-p} controls which style it will use when
citing previously uncited text. When this variable is @code{nil} (the
this order:
@cindex citation leader
-@vindex citation-leader (sc-)
+@vindex citation-leader @r{(sc-)}
@vindex sc-citation-leader
@enumerate
@item
@cindex citation delimiter
@vindex sc-citation-delimiter
-@vindex citation-delimiter (sc-)
+@vindex citation-delimiter @r{(sc-)}
@item
The @dfn{citation delimiter}. This string, contained in the variable
@code{sc-citation-delimiter} visually separates the citation from the
for best results, the string should consist of only a single character.
@cindex citation separator
-@vindex citation-separator (sc-)
+@vindex citation-separator @r{(sc-)}
@vindex sc-citation-separator
@item
The @dfn{citation separator}. The citation separator is contained in
those that make up the citation string as mentioned previously.
@vindex sc-citation-leader-regexp
-@vindex citation-leader-regexp (sc-)
+@vindex citation-leader-regexp @r{(sc-)}
@vindex sc-citation-delimiter-regexp
-@vindex citation-delimiter-regexp (sc-)
+@vindex citation-delimiter-regexp @r{(sc-)}
@vindex sc-citation-separator-regexp
-@vindex citation-separator-regexp (sc-)
+@vindex citation-separator-regexp @r{(sc-)}
@vindex sc-citation-root-regexp
-@vindex citation-root-regexp (sc-)
+@vindex citation-root-regexp @r{(sc-)}
@vindex sc-citation-nonnested-root-regexp
-@vindex citation-nonnested-root-regexp (sc-)
+@vindex citation-nonnested-root-regexp @r{(sc-)}
The variable @code{sc-citation-leader-regexp} describes how citation
leaders can look, by default it matches any number of spaces or tabs.
@cindex Info Alist
@cindex information extracted from mail fields
@findex sc-mail-field
-@findex mail-field (sc-)
+@findex mail-field @r{(sc-)}
@dfn{Mail header information keys} are nuggets of information that
Supercite extracts from the various mail headers of the original
@end example
@vindex sc-mumble
-@vindex mumble (sc-)
+@vindex mumble @r{(sc-)}
@noindent
then, the following lisp constructs return:
@cindex header rewrite functions
@vindex sc-rewrite-header-list
-@vindex rewrite-header-list (sc-)
+@vindex rewrite-header-list @r{(sc-)}
There are a number of built-in @dfn{header rewrite functions} supplied
by Supercite, but you can write your own custom header rewrite
functions (perhaps using the built-in ones as examples). The variable
@xref{Electric References}.
@vindex sc-preferred-header-style
-@vindex preferred-header-style (sc-)
+@vindex preferred-header-style @r{(sc-)}
When Supercite is initially run on a reply buffer (via
@code{sc-cite-original}), it will automatically call one of these
functions. The one it uses is defined in the variable
@samp{Date:@:} and @samp{From:@:} mail headers respectively.
@vindex sc-reference-tag-string
-@vindex reference-tag-string (sc-)
+@vindex reference-tag-string @r{(sc-)}
Also, the string @code{">>>>>"} below is really the value of the
variable @code{sc-reference-tag-string}. This variable is used in all
built-in header rewrite functions, and you can customize its value to
@table @code
@findex sc-no-header
-@findex no-header (sc-)
+@findex no-header @r{(sc-)}
@item sc-no-header
This function produces no header. It should be used instead of
@code{nil} to produce a blank header. This header can possibly
@item sc-no-blank-line-or-header
@findex sc-no-blank-line-or-header
-@findex no-blank-line-or-header (sc-)
+@findex no-blank-line-or-header @r{(sc-)}
This function is similar to @code{sc-no-header} except that any blank
line after the @code{mail-header-separator} line will be removed.
@item sc-header-on-said
@findex sc-header-on-said
-@findex header-on-said (sc-)
+@findex header-on-said @r{(sc-)}
@code{>>>>> On @var{date}, @var{from} said:}
@item sc-header-inarticle-writes
@findex sc-header-inarticle-writes
-@findex header-inarticle-writes (sc-)
+@findex header-inarticle-writes @r{(sc-)}
@code{>>>>> In article @var{message-id}, @var{from} writes:}
@item sc-header-regarding-adds
@findex sc-header-regarding-adds
-@findex header-regarding-adds (sc-)
+@findex header-regarding-adds @r{(sc-)}
@code{>>>>> Regarding @var{subject}; @var{from} adds:}
@item sc-header-attributed-writes
@findex sc-header-attributed-writes
-@findex header-attributed-writes (sc-)
+@findex header-attributed-writes @r{(sc-)}
@code{>>>>> "@var{sc-attribution}" == @var{sc-author} <@var{sc-reply-address}> writes:}
@item sc-header-author-writes
@findex sc-header-author-writes
-@findex header-author-writes (sc-)
+@findex header-author-writes @r{(sc-)}
@code{>>>>> @var{sc-author} writes:}
@item sc-header-verbose
@findex sc-header-verbose
-@findex header-verbose (sc-)
+@findex header-verbose @r{(sc-)}
@code{>>>>> On @var{date},}@*
@code{>>>>> @var{sc-author}}@*
@code{>>>>> from the organization of @var{organization}}@*
which you can drop into to give you this functionality.
@vindex sc-electric-references-p
-@vindex electric-references-p (sc-)
+@vindex electric-references-p @r{(sc-)}
If the variable @code{sc-electric-references-p} is non-@code{nil},
Supercite will bring up an electric reference mode buffer and place you
into a recursive edit. The electric reference buffer is read-only, so
@table @asis
@item @code{sc-eref-next} (@kbd{n})
@findex sc-eref-next
-@findex eref-next (sc-)
+@findex eref-next @r{(sc-)}
@kindex n
@vindex sc-electric-circular-p
-@vindex electric-circular-p (sc-)
+@vindex electric-circular-p @r{(sc-)}
Displays the next reference header in the electric reference buffer. If
the variable @code{sc-electric-circular-p} is non-@code{nil}, invoking
@code{sc-eref-next} while viewing the last reference header in the list
@item @code{sc-eref-prev} (@kbd{p})
@findex sc-eref-prev
-@findex eref-prev (sc-)
+@findex eref-prev @r{(sc-)}
@kindex p
Displays the previous reference header in the electric reference buffer.
If the variable @code{sc-electric-circular-p} is non-@code{nil},
@item @code{sc-eref-goto} (@kbd{g})
@findex sc-eref-goto
-@findex eref-goto (sc-)
+@findex eref-goto @r{(sc-)}
@kindex g
Goes to a specified reference header. The index (into the
@code{sc-rewrite-header-list}) can be specified as a numeric argument to
@item @code{sc-eref-jump} (@kbd{j})
@findex sc-eref-jump
-@findex eref-jump (sc-)
+@findex eref-jump @r{(sc-)}
@kindex j
Display the preferred reference header, i.e., the one indexed by the current
value of @code{sc-preferred-header-style}.
@item @code{sc-eref-setn} (@kbd{s})
@findex sc-eref-setn
-@findex eref-setn (sc-)
+@findex eref-setn @r{(sc-)}
@kindex s
Set the preferred reference header (i.e.,
@code{sc-preferred-header-style}) to the currently displayed header.
@kindex C-j
@kindex q
@findex sc-eref-exit
-@findex eref-exit (sc-)
+@findex eref-exit @r{(sc-)}
Exit from electric reference mode and insert the current header into the
reply buffer.
@item @code{sc-eref-abort} (@kbd{q}, @kbd{x})
@findex sc-eref-abort
-@findex eref-abort (sc-)
+@findex eref-abort @r{(sc-)}
@kindex x
Exit from electric reference mode without inserting the current header.
@end table
@vindex sc-electric-mode-hook
-@vindex electric-mode-hook (sc-)
+@vindex electric-mode-hook @r{(sc-)}
@noindent
Supercite will execute the hook @code{sc-electric-mode-hook} before
entering electric reference mode.
@cindex autoload
@cindex .emacs file
@findex sc-cite-original
-@findex cite-original (sc-)
+@findex cite-original @r{(sc-)}
The first thing that everyone should do, regardless of the MUA you are
using is to set up Emacs so it will load Supercite at the appropriate
time. This happens automatically if Supercite is distributed with your
@node Reply Buffer Initialization
@section Reply Buffer Initialization
@findex sc-cite-original
-@findex cite-original (sc-)
+@findex cite-original @r{(sc-)}
Executing @code{sc-cite-original} performs the following steps as it
initializes the reply buffer:
@enumerate
@item
@vindex sc-pre-hook
-@vindex pre-hook (sc-)
+@vindex pre-hook @r{(sc-)}
@emph{Runs @code{sc-pre-hook}.}
This hook variable is run before @code{sc-cite-original} does any other
work. You could conceivably use this hook to set certain Supercite
@item
@emph{Inserts Supercite's keymap.}
@vindex sc-mode-map-prefix
-@vindex mode-map-prefix (sc-)
+@vindex mode-map-prefix @r{(sc-)}
@kindex C-c C-p
@cindex keymap prefix
Supercite provides a number of commands for performing post-yank
@item
@emph{Processes the mail headers.}
@vindex sc-confirm-always-p
-@vindex confirm-always-p (sc-)
+@vindex confirm-always-p @r{(sc-)}
@vindex sc-mail-warn-if-non-rfc822-p
-@vindex mail-warn-if-non-rfc822-p (sc-)
+@vindex mail-warn-if-non-rfc822-p @r{(sc-)}
All previously retrieved info key-value pairs are deleted from the info
alist, then the mail headers in the body of the yanked message are
scanned. Info key-value pairs are created for each header found. Also,
@vindex sc-nuke-mail-headers
@vindex sc-nuke-mail-header-list
-@vindex nuke-mail-headers (sc-)
-@vindex nuke-mail-header-list (sc-)
+@vindex nuke-mail-headers @r{(sc-)}
+@vindex nuke-mail-header-list @r{(sc-)}
Once the info keys have been extracted from the mail headers, the
headers are nuked from the reply buffer. You can control exactly which
headers are removed or kept, but by default, all headers are removed.
the beginning of the line.
@vindex sc-blank-lines-after-headers
-@vindex blank-lines-after-headers (sc-)
+@vindex blank-lines-after-headers @r{(sc-)}
If the variable @code{sc-blank-lines-after-headers} is non-@code{nil},
it contains the number of blank lines remaining in the buffer after mail
headers are nuked. By default, only one blank line is left in the buffer.
@item
@emph{Cites the message body.}
@vindex sc-cite-region-limit
-@vindex cite-region-limit (sc-)b
+@vindex cite-region-limit @r{(sc-)}
After the selection of the attribution and citation strings, Supercite
cites the original message by inserting the citation string prefix in
front of every uncited line. You may not want Supercite to
the message manually.
@vindex sc-cite-blank-lines-p
-@vindex cite-blank-lines-p (sc-)
+@vindex cite-blank-lines-p @r{(sc-)}
The variable @code{sc-cite-blank-lines-p} controls whether blank lines
in the original message should be cited or not. If this variable is
non-@code{nil}, blank lines will be cited just like non-blank lines.
@item
@emph{Runs @code{sc-post-hook}.}
@vindex sc-post-hook
-@vindex post-hook (sc-)
+@vindex post-hook @r{(sc-)}
This variable is very similar to @code{sc-pre-hook}, except that it runs
after @code{sc-cite-original} is finished. This hook is provided mostly
for completeness and backward compatibility. Perhaps it could be used to
@section Filling Cited Text
@cindex filling paragraphs
@vindex sc-auto-fill-region-p
-@vindex auto-fill-region-p (sc-)
+@vindex auto-fill-region-p @r{(sc-)}
@cindex filladapt
@cindex gin-mode
@findex sc-setup-filladapt
-@findex setup-filladapt (sc-)
+@findex setup-filladapt @r{(sc-)}
Supercite will automatically fill newly cited text from the original
message unless the variable @code{sc-auto-fill-region-p} has a
setup.
@vindex sc-fixup-whitespace-p
-@vindex fixup-whitespace-p (sc-)
+@vindex fixup-whitespace-p @r{(sc-)}
Also, Supercite will collapse leading whitespace between the citation
string and the text on a line when the variable
@code{sc-fixup-whitespace-p} is non-@code{nil}. The default value for
@chapter Selecting an Attribution
@cindex attribution list
@vindex sc-preferred-attribution-list
-@vindex preferred-attribution-list (sc-)
+@vindex preferred-attribution-list @r{(sc-)}
As you know, the attribution string is the part of the author's name
that will be used to composed a non-nested citation string. Supercite
@item "sc-consult"
@vindex sc-attrib-selection-list
-@vindex attrib-selection-list (sc-)
+@vindex attrib-selection-list @r{(sc-)}
consults the customizable list @code{sc-attrib-selection-list} which can
be used to select special attributions based on the value of any info
key. See below for details.
@code{"sc-lastchoice"}. This latter is the default.
@vindex sc-attrib-selection-list
-@vindex attrib-selection-list (sc-)
+@vindex attrib-selection-list @r{(sc-)}
The value @code{"sc-consult"} in @code{sc-preferred-attribution-list}
has a special meaning during attribution selection. When Supercite
encounters this preference, it begins processing a customizable list of
@noindent
@findex sc-mail-field
-@findex mail-field (sc-)
+@findex mail-field @r{(sc-)}
where @var{infokey} is a key for @code{sc-mail-field} and @var{regexp}
is a regular expression to match against the @var{infokey}'s value. If
@var{regexp} matches the @var{infokey}'s value, the @var{attribution} is
@node Anonymous Attributions
@section Anonymous Attributions
@vindex sc-default-author-name
-@vindex default-author-name (sc-)
+@vindex default-author-name @r{(sc-)}
@vindex sc-default-attribution
-@vindex default-attribution (sc-)
+@vindex default-attribution @r{(sc-)}
When the author's name cannot be found in the @samp{From:@:} mail
header, a fallback author name and attribution string must be supplied.
incorrectly.
@vindex sc-use-only-preference-p
-@vindex use-only-preference-p (sc-)
+@vindex use-only-preference-p @r{(sc-)}
Also, if the preferred attribution, which you specified in your
@code{sc-preferred-attribution-list} variable cannot be found, a
secondary method can be employed to find a valid attribution string. The
@end enumerate
@vindex sc-confirm-always-p
-@vindex confirm-always-p (sc-)
+@vindex confirm-always-p @r{(sc-)}
Once the attribution string has been automatically selected, a number of
things can happen. If the variable @code{sc-confirm-always-p} is
non-@code{nil}, you are queried for confirmation of the chosen
key in the attribution alist.
@vindex sc-downcase-p
-@vindex downcase-p (sc-)
+@vindex downcase-p @r{(sc-)}
Once an attribution string has been selected, Supercite will force the
string to lower case if the variable @code{sc-downcase-p} is
non-@code{nil}.
@vindex sc-attribs-preselect-hook
-@vindex attribs-preselect-hook (sc-)
+@vindex attribs-preselect-hook @r{(sc-)}
@vindex sc-attribs-postselect-hook
-@vindex attribs-postselect-hook (sc-)
+@vindex attribs-postselect-hook @r{(sc-)}
Two hook variables provide even greater control of the attribution
selection process. The hook @code{sc-attribs-preselect-hook} is run
cannot parse, please report this bug using @kbd{M-x report-emacs-bug}.
@vindex sc-titlecue-regexp
-@vindex titlecue-regexp (sc-)
+@vindex titlecue-regexp @r{(sc-)}
There are a number of Supercite variables that control how author names
are extracted from the @samp{From:@:} header. Some headers may contain a
descriptive title as in:
text after this regexp is encountered is ignored as noise.
@vindex sc-name-filter-alist
-@vindex name-filter-alist (sc-)
+@vindex name-filter-alist @r{(sc-)}
Some @samp{From:@:} headers may contain extra titles in the name fields
not separated by a title cue, but which are nonetheless not part of the
author's name proper. Examples include the titles ``Dr.'', ``Mr.'',
@node Post-yank Formatting Commands
@chapter Post-yank Formatting Commands
@vindex sc-mode-map-prefix
-@vindex mode-map-prefix (sc-)
+@vindex mode-map-prefix @r{(sc-)}
@kindex C-c C-p
Once the original message has been yanked into the reply buffer, and
@table @asis
@findex sc-cite-region
-@findex cite-region (sc-)
+@findex cite-region @r{(sc-)}
@kindex C-c C-p c
@vindex sc-pre-cite-hook
-@vindex pre-cite-hook (sc-)
+@vindex pre-cite-hook @r{(sc-)}
@vindex sc-confirm-always-p
@vindex confirm-always-p
@kindex C-u
@xref{Configuring the Citation Engine}.
@findex sc-uncite-region
-@findex uncite-region (sc-)
+@findex uncite-region @r{(sc-)}
@kindex C-c C-p u
@item @code{sc-uncite-region} (@kbd{C-c C-p u})
This command removes any citation strings from the beginning of each
@xref{Configuring the Citation Engine}.
@findex sc-recite-region
-@findex recite-region (sc-)
+@findex recite-region @r{(sc-)}
@kindex C-c C-p r
@item @code{sc-recite-region} (@kbd{C-c C-p r})
This command recites each line the region by interpreting the selected
@xref{Configuring the Citation Engine}.
@vindex sc-confirm-always-p
-@vindex confirm-always-p (sc-)
+@vindex confirm-always-p @r{(sc-)}
Supercite will always ask you to confirm the attribution when reciting a
region, regardless of the value of @code{sc-confirm-always-p}.
@end table
@table @asis
@findex sc-insert-reference
-@findex insert-reference (sc-)
+@findex insert-reference @r{(sc-)}
@kindex C-c C-p w
@item @code{sc-insert-reference} (@kbd{C-c C-p w})
@vindex sc-preferred-header-style
-@vindex preferred-header-style (sc-)
+@vindex preferred-header-style @r{(sc-)}
Inserts a reference header into the reply buffer at @samp{point}. With
no arguments, the header indexed by @code{sc-preferred-header-style} is
inserted. An optional numeric argument is the index into
entered, regardless of the value of @code{sc-electric-references-p}.
@findex sc-insert-citation
-@findex insert-citation (sc-)
+@findex insert-citation @r{(sc-)}
@kindex C-c C-p i
@item @code{sc-insert-citation} (@kbd{C-c C-p i})
Inserts the current citation string at the beginning of the line that
@table @asis
@kindex C-c C-p f
@findex sc-mail-field-query
-@findex mail-field-query (sc-)
+@findex mail-field-query @r{(sc-)}
@kindex C-c C-p f
@item @code{sc-mail-field-query} (@kbd{C-c C-p f})
Allows you to interactively view, modify, add, and delete info alist
subsequently delete the key-value pair, the old value will reappear.
@findex sc-mail-process-headers
-@findex mail-process-headers (sc-)
+@findex mail-process-headers @r{(sc-)}
@kindex C-c C-p g
@item @code{sc-mail-process-headers} (@kbd{C-c C-p g})
This command lets you re-initialize Supercite's info alist from any set
@table @asis
@findex sc-open-line
-@findex open-line (sc-)
+@findex open-line @r{(sc-)}
@findex open-line
@kindex C-c C-p o
@item @code{sc-open-line} (@kbd{C-c C-p o})
@cindex Syntactic Analysis
@vindex vhdl-offsets-alist
-@vindex offsets-alist (vhdl-)
+@vindex offsets-alist @r{(vhdl-)}
@cindex relative buffer position
@cindex syntactic symbol
@cindex syntactic component
@kindex C-c C-x
@findex vhdl-show-syntactic-information
-@findex show-syntactic-information (vhdl-)
+@findex show-syntactic-information @r{(vhdl-)}
We can use the command @kbd{C-c C-x}
(@code{vhdl-show-syntactic-information}) to simply report what the
syntactic analysis is for the current line. Running this command on
@cindex Indentation Calculation
@vindex vhdl-offsets-alist
-@vindex offsets-alist (vhdl-)
+@vindex offsets-alist @r{(vhdl-)}
Indentation for the current line is calculated using the syntactic
component list derived in step 1 above (see @ref{Syntactic
Analysis}). Each component contributes to the final total indentation
being used.
@vindex vhdl-echo-syntactic-information-p
-@vindex echo-syntactic-information-p (vhdl-)
+@vindex echo-syntactic-information-p @r{(vhdl-)}
@cindex TAB
To help you configure VHDL Mode, you can set the variable
@code{vhdl-echo-syntactic-information-p} to non-@code{nil} so that the
@end example
@findex vhdl-set-offset
-@findex set-offset (vhdl-)
+@findex set-offset @r{(vhdl-)}
@kindex C-c O
@noindent
So we know that to change the offset of the first signal assignment, we need to
the @code{vhdl-offsets-alist} variable.
@findex vhdl-indent-defun
-@findex indent-defun (vhdl-)
+@findex indent-defun @r{(vhdl-)}
To check your changes quickly, just enter @kbd{M-x vhdl-indent-defun} to
reindent the entire function. The example should now look like:
@example
@end itemize
@findex vhdl-set-style
-@findex set-style (vhdl-)
+@findex set-style @r{(vhdl-)}
If you'd like to experiment with these built-in styles you can simply
type @kbd{M-x vhdl-set-style RET} in a VHDL Mode buffer.
@cindex Adding Styles
@vindex vhdl-style-alist
-@vindex style-alist (vhdl-)
+@vindex style-alist @r{(vhdl-)}
@findex vhdl-add-style
-@findex add-style (vhdl-)
+@findex add-style @r{(vhdl-)}
If none of the built-in styles is appropriate, you'll probably want to
add a new style definition. Styles are kept in the @code{vhdl-style-alist}
variable, but you probably won't want to modify this variable directly.
you to customize your style on a per-file basis.
@vindex vhdl-file-style
-@vindex file-style (vhdl-)
+@vindex file-style @r{(vhdl-)}
@vindex vhdl-file-offsets
-@vindex file-offsets (vhdl-)
+@vindex file-offsets @r{(vhdl-)}
The variable @code{vhdl-file-style} can be set to a style name string as
described in @ref{Built-in Styles}. When the file is visited,
using @code{vhdl-set-style}.
@vindex vhdl-offsets-alist
-@vindex offsets-alist (vhdl-)
+@vindex offsets-alist @r{(vhdl-)}
@findex vhdl-set-offset
-@findex set-offset (vhdl-)
+@findex set-offset @r{(vhdl-)}
Another variable, @code{vhdl-file-offsets}, takes an association list
similar to what is allowed in @code{vhdl-offsets-alist}. When the file is
visited, VHDL Mode will automatically institute these offsets using
@cindex Advanced Customizations
@vindex vhdl-style-alist
-@vindex style-alist (vhdl-)
+@vindex style-alist @r{(vhdl-)}
@vindex vhdl-basic-offset
-@vindex basic-offset (vhdl-)
+@vindex basic-offset @r{(vhdl-)}
For most users, VHDL Mode will support their coding styles with
very little need for customizations. Usually, one of the standard
styles defined in @code{vhdl-style-alist} will do the trick. Sometimes,
@cindex statement-cont syntactic symbol
@findex vhdl-lineup-statement-cont
-@findex lineup-statement-cont (vhdl-)
+@findex lineup-statement-cont @r{(vhdl-)}
Now, to associate the function @code{vhdl-lineup-statement-cont} with the
@code{statement-cont} syntactic symbol, we can add something like the
following to our @code{vhdl-mode-hook}:
@end example
@vindex vhdl-offsets-alist
-@vindex offsets-alist (vhdl-)
+@vindex offsets-alist @r{(vhdl-)}
Custom indentation functions can be as simple or as complex as you like,
and any syntactic symbol that appears in @code{vhdl-offsets-alist} can have
a custom indentation function associated with it. Note however that
@cindex Other Special Indentations
@vindex vhdl-special-indent-hook
-@vindex special-indent-hook (vhdl-)
+@vindex special-indent-hook @r{(vhdl-)}
One other variable is available for you to customize VHDL Mode:
@code{vhdl-special-indent-hook}. This is a standard hook variable that
is called after every line is indented by VHDL Mode. You can use
@kindex C-c C-b
@findex vhdl-submit-bug-report
-@findex submit-bug-report (vhdl-)
+@findex submit-bug-report @r{(vhdl-)}
@cindex beta testers mailing list
@cindex announcement mailing list
To report bugs, use the @kbd{C-c C-b} (@code{vhdl-submit-bug-report})
@cindex Insert state
@cindex Replace state
@cindex Ex commands
-@findex @code{viper-go-away}
-@findex @code{toggle-viper-mode}
+@findex viper-go-away
+@findex toggle-viper-mode
Viper has four states, Emacs, Vi, Insert, and Replace.
@example
(copy-face 'default 'viper-search-face)
@end example
-@vindex @code{viper-search-face}
+@vindex viper-search-face
@noindent
in your Viper customization file. If you want to change how patterns are
highlighted, you will have to change @code{viper-search-face} to your liking.
The keys @kbd{x} and @kbd{%} will still work correctly, i.e., as if they
were on the last character.
-@vindex @code{viper-syntax-preference}
+@vindex viper-syntax-preference
@cindex syntax table
The word-movement commands @kbd{w}, @kbd{e}, etc., and the associated
(viper-set-syntax-preference nil "emacs")
@end example
-@findex @code{viper-set-syntax-preference}
+@findex viper-set-syntax-preference
The above discussion of the meaning of Viper's words concerns only Viper's
movement commands. In regular expressions, words remain the same as in
Check spelling of words in the region (@code{spell-region}).
The function used for spelling is determined from the variable
@code{viper-spell-function}.
-@vindex @code{viper-spell-function}
+@vindex viper-spell-function
@item *
@kindex @kbd{*}
Call last keyboard macro.
This feature is used to expand wildcards in the Ex command @kbd{:e}.
Note that Viper doesn't support wildcards in the @kbd{:r} and @kbd{:w}
commands, because file completion is a better mechanism.
-@findex @code{viper-glob-function}
+@findex viper-glob-function
@item ex-cycle-other-window t
If not @code{nil}, @kbd{:n} and @kbd{:b} will cycle through files in another
hit the @kbd{C-j} key.
@item viper-replace-overlay-cursor-color "Red"
-@vindex @code{viper-replace-overlay-cursor-color}
+@vindex viper-replace-overlay-cursor-color
Cursor color when it is inside the replacement region.
This has effect only on color displays and only when Emacs runs as an X
application.
@item viper-insert-state-cursor-color nil
-@vindex @code{viper-insert-state-cursor-color}
+@vindex viper-insert-state-cursor-color
If set to a valid color, this will be the cursor color when Viper is in
insert state.
@item viper-emacs-state-cursor-color nil
-@vindex @code{viper-emacs-state-cursor-color}
+@vindex viper-emacs-state-cursor-color
If set to a valid color, this will be the cursor color when Viper is in
emacs state.
@item viper-replace-region-end-delimiter "$"
@example
(setq viper-case-fold-search t)
@end example
-@vindex @code{viper-auto-indent}
-@vindex @code{viper-electric-mode}
-@vindex @code{viper-case-fold-search}
-@vindex @code{viper-re-search}
-@vindex @code{viper-shift-width}
-@vindex @code{buffer-read-only}
-@vindex @code{viper-search-wrap-around}
-@vindex @code{viper-search-scroll-threshold}
-@vindex @code{viper-search-face}
-@vindex @code{viper-tags-file-name}
-@vindex @code{viper-re-query-replace}
-@vindex @code{viper-want-ctl-h-help}
-@vindex @code{viper-vi-style-in-minibuffer}
-@vindex @code{viper-no-multiple-ESC}
-@vindex @code{viper-always}
-@vindex @code{viper-fast-keyseq-timeout}
-@vindex @code{viper-ex-style-motion}
-@vindex @code{viper-ex-style-editing}
-@vindex @code{viper-ESC-moves-cursor-back}
-@vindex @code{viper-custom-file-name}
-@vindex @code{viper-spell-function}
-@vindex @code{ex-cycle-other-window}
-@vindex @code{ex-cycle-through-non-files}
-@vindex @code{viper-want-emacs-keys-in-insert}
-@vindex @code{viper-want-emacs-keys-in-vi}
-@vindex @code{viper-keep-point-on-repeat}
-@vindex @code{viper-keep-point-on-undo}
-@vindex @code{viper-delete-backwards-in-replace}
-@vindex @code{viper-replace-overlay-face}
-@vindex @code{viper-replace-region-end-symbol}
-@vindex @code{viper-replace-region-start-symbol}
-@vindex @code{viper-allow-multiline-replace-regions}
-@vindex @code{viper-toggle-key}
-@vindex @code{viper-buffer-search-char}
-@vindex @code{viper-surrounding-word-function}
-@vindex @code{viper-vi-state-hook}
-@vindex @code{viper-insert-state-hook}
-@vindex @code{viper-replace-state-hook}
-@vindex @code{viper-emacs-state-hook}
+@vindex viper-auto-indent
+@vindex viper-electric-mode
+@vindex viper-case-fold-search
+@vindex viper-re-search
+@vindex viper-shift-width
+@vindex buffer-read-only
+@vindex viper-search-wrap-around
+@vindex viper-search-scroll-threshold
+@vindex viper-search-face
+@vindex viper-tags-file-name
+@vindex viper-re-query-replace
+@vindex viper-want-ctl-h-help
+@vindex viper-vi-style-in-minibuffer
+@vindex viper-no-multiple-ESC
+@vindex viper-always
+@vindex viper-fast-keyseq-timeout
+@vindex viper-ex-style-motion
+@vindex viper-ex-style-editing
+@vindex viper-ESC-moves-cursor-back
+@vindex viper-custom-file-name
+@vindex viper-spell-function
+@vindex ex-cycle-other-window
+@vindex ex-cycle-through-non-files
+@vindex viper-want-emacs-keys-in-insert
+@vindex viper-want-emacs-keys-in-vi
+@vindex viper-keep-point-on-repeat
+@vindex viper-keep-point-on-undo
+@vindex viper-delete-backwards-in-replace
+@vindex viper-replace-overlay-face
+@vindex viper-replace-region-end-symbol
+@vindex viper-replace-region-start-symbol
+@vindex viper-allow-multiline-replace-regions
+@vindex viper-toggle-key
+@vindex viper-buffer-search-char
+@vindex viper-surrounding-word-function
+@vindex viper-vi-state-hook
+@vindex viper-insert-state-hook
+@vindex viper-replace-state-hook
+@vindex viper-emacs-state-hook
@node Key Bindings
@section Key Bindings
global bindings, this can be done separately for each of the three main Viper
states. To this end, Viper provides the function
@code{viper-modify-major-mode}.
-@findex @code{viper-modify-major-mode}
+@findex viper-modify-major-mode
To modify keys in Emacs state for @code{my-favorite-major-mode}, the user
needs to create a sparse keymap, say, @code{my-fancy-map}, bind whatever
Yet another way to customize key bindings in a major mode is to edit the
list @code{viper-major-mode-modifier-list} using the customization widget.
-@vindex @code{viper-major-mode-modifier-list}
+@vindex viper-major-mode-modifier-list
(This variable is in the Viper-misc customization group.)
The elements of this list are triples of the form: (major-mode viper-state
keymap), where the keymap contains bindings that are supposed to be active
Manual}, and the Emacs quick reference card for the general info on key
bindings in Emacs.
-@vindex @code{input-decode-map}
-@vindex @code{function-key-map}
-@vindex @code{viper-vi-global-user-map}
-@vindex @code{viper-insert-global-user-map}
-@vindex @code{viper-emacs-global-user-map}
-@findex @code{viper-add-local-keys}
-@findex @code{viper-zap-local-keys}
+@vindex input-decode-map
+@vindex function-key-map
+@vindex viper-vi-global-user-map
+@vindex viper-insert-global-user-map
+@vindex viper-emacs-global-user-map
+@findex viper-add-local-keys
+@findex viper-zap-local-keys
@node Packages that Change Keymaps
@section Packages that Change Keymaps
@code{viper-vi-state-mode-list}.
Likewise, you can force Viper's Insert state on a major mode by putting it
in @code{viper-insert-state-mode-list}.
-@vindex @code{viper-emacs-state-mode-list}
-@vindex @code{viper-insert-state-mode-list}
-@vindex @code{viper-vi-state-mode-list}
+@vindex viper-emacs-state-mode-list
+@vindex viper-insert-state-mode-list
+@vindex viper-vi-state-mode-list
It is also possible to impose Vi on some major modes, even though they may
bind common keys to specialized commands. This might make sense for modes
(viper-harness-minor-mode lib)))
@end lisp
-@vindex @code{viper-want-emacs-keys-in-vi}
-@vindex @code{viper-want-emacs-keys-in-insert}
-@vindex @code{viper-always}
-@findex @code{viper-set-hooks}
-@findex @code{viper-mode}
-@findex @code{viper-harness-minor-mode}
-@findex @code{remove-hook}
-@findex @code{add-hook}
+@vindex viper-want-emacs-keys-in-vi
+@vindex viper-want-emacs-keys-in-insert
+@vindex viper-always
+@findex viper-set-hooks
+@findex viper-mode
+@findex viper-harness-minor-mode
+@findex remove-hook
+@findex add-hook
@node Viper Specials
@section Viper Specials
set @code{viper-buffer-search-char} in his/her Viper customization file to a key
sequence to be used for buffer search. There is no need to call
@code{viper-buffer-search-enable} in that case.
-@findex @code{viper-buffer-search-enable}
-@vindex @code{viper-buffer-search-char}
+@findex viper-buffer-search-enable
+@vindex viper-buffer-search-char
@item viper-toggle-search-style
This function, bound to @kbd{C-c /}, lets one toggle case-sensitive and
case-insensitive search, and also switch between plain vanilla search and
@example
(viper-set-searchstyle-toggling-macros 'undefine)
@end example
-@findex @code{viper-set-searchstyle-toggling-macros}
+@findex viper-set-searchstyle-toggling-macros
If you don't like this feature as a default, but would still like to have
it in some major modes, you can do so by first unsetting it globally, as
If you don't like these features---which I don't really understand---you
can unbind @kbd{/} and @kbd{:} in @code{viper-dired-modifier-map} (for
Dired) or in @code{viper-slash-and-colon-map}, for other modes.
-@vindex @code{viper-slash-and-colon-map}
-@vindex @code{viper-dired-modifier-map}
+@vindex viper-slash-and-colon-map
+@vindex viper-dired-modifier-map
To unbind the macros @kbd{//} and @kbd{///} for a major mode where you
feel they
@example
(viper-set-emacs-state-searchstyle-macros 'undefine)
@end example
-@findex @code{viper-set-emacs-state-searchstyle-macros}
+@findex viper-set-emacs-state-searchstyle-macros
in the hook to the major mode (e.g., @code{dired-mode-hook}).
@xref{Vi Macros}, for more information on Vi macros.
Regexps for paragraphs and sentences. @xref{Paragraphs,,Paragraphs and
Sentences,emacs,The GNU Emacs Manual}, for details.
@item M-x viper-set-expert-level
-@findex @code{viper-set-expert-level}
+@findex viper-set-expert-level
Change your user level interactively.
@item viper-smart-suffix-list '("" "tex" "c" "cc" "el" "p")
-@vindex @code{viper-smart-suffix-list}
+@vindex viper-smart-suffix-list
Viper supports Emacs-style file completion when it prompts the user for a
file name. However, in many cases, the same directory may contain files
with identical prefix but different suffixes, e.g., prog.c, prog.o,
To turn this feature off, set the above variable to @code{nil}.
@item viper-insertion-ring-size 14
-@vindex @code{viper-insertion-ring-size}
+@vindex viper-insertion-ring-size
@cindex Insertion ring
Viper remembers what was previously inserted in Insert and Replace states.
Several such recent insertions are kept in a special ring of strings of size
major modes.
@item viper-command-ring-size 14
-@vindex @code{viper-command-ring-size}
+@vindex viper-command-ring-size
@cindex Destructive command ring
@cindex Destructive command history
Viper keeps track of the recent history of destructive
if the user accidentally switches to another Viper state by typing @key{ESC} or
@kbd{C-z}).
@item M-x viper-go-away
-@findex @code{viper-go-away}
+@findex viper-go-away
Make Viper disappear from the face of your running Emacs instance. If your
fingers start aching again, @kbd{M-x viper-mode} might save your day.
@item M-x toggle-viper-mode
-@findex @code{toggle-viper-mode}
+@findex toggle-viper-mode
Toggle Viperization of Emacs on and off.
@end table
@cindex mouse
@cindex mouse-search
@item viper-mouse-search-key (meta shift 1)
-@vindex @code{viper-mouse-insert-key}
+@vindex viper-mouse-insert-key
This variable controls the @emph{mouse-search} feature of Viper. The
default value
states that holding Meta and Shift keys while clicking mouse button 1
@cindex mouse-insert
@item viper-mouse-insert-key (meta shift 2)
-@vindex @code{viper-mouse-insert-key}
+@vindex viper-mouse-insert-key
This variable controls the @emph{mouse-insert} feature of Viper.
The above default value states that
holding Meta and Shift keys while clicking mouse button 2
@kindex @kbd{S-mouse-2}
@kindex @kbd{meta shift button1up}
@kindex @kbd{meta shift button2up}
-@vindex @code{viper-multiclick-timeout}
-@findex @code{viper-mouse-click-insert-word}
-@findex @code{viper-mouse-click-search-word}
+@vindex viper-multiclick-timeout
+@findex viper-mouse-click-insert-word
+@findex viper-mouse-click-search-word
Note: The above functions search and insert in the selected window of
the latest active frame. This means that you can click in another window or
needed only when the user needs to get rid of the macros that are already
predefined in Viper.
The syntax is:
-@findex @code{viper-unrecord-kbd-macro}
+@findex viper-unrecord-kbd-macro
@example
(viper-unrecord-kbd-macro macro state)
@end example
may be using). To do this, start Emacs on an appropriate TTY device and
define the macro using @kbd{:map}, as usual.
-@findex @code{viper-describe-kbd-macros}
+@findex viper-describe-kbd-macros
Finally, Viper provides a function that conveniently displays all macros
currently defined. To see all macros along with their definitions, type
@kbd{M-x viper-describe-kbd-macros}.
in the appropriate major mode hooks.
-@vindex @code{viper-syntax-preference}
-@findex @code{viper-set-syntax-preference}
+@vindex viper-syntax-preference
+@findex viper-set-syntax-preference
@cindex syntax table
@example
(viper-set-parsing-style-toggling-macro 'undefine)
@end example
-@findex @code{viper-set-parsing-style-toggling-macro}
+@findex viper-set-parsing-style-toggling-macro
in your Viper customization file.
@kindex @kbd{j}
@kindex @kbd{k}
@kindex @kbd{l}
-@vindex @code{viper-parse-sexp-ignore-comments}
+@vindex viper-parse-sexp-ignore-comments
@node Marking
@subsection Marking
actually used to read the buffer name. The default is @code{read-buffer},
but better alternatives are also available in Emacs (e.g.,
@code{ido-read-buffer}).
-@vindex @code{viper-read-buffer-function}
+@vindex viper-read-buffer-function
@item :B
Like @kbd{:b}, but the meaning of @code{ex-cycle-other-window} is reversed.
@item :<address>r <name>