Unlike the standard region, the region-rectangle can have its corners
extended past the end of buffer, or inside stretches of white space
-that point normally cannot enter, like the TAB.
+that point normally cannot enter, like the @key{TAB}.
@findex rectangle-exchange-point-and-mark
@findex exchange-point-and-mark@r{, in rectangle-mark-mode}
whole function, you can type @kbd{C-h f} (@code{describe-function})
and the name of the function. This gives you the function
documentation and the name of the library containing the function's
-source. Place point over the name of the library and press the RET
+source. Place point over the name of the library and press the @key{RET}
key; you will be taken directly to the source. (Be sure to install
your sources! Without them, you are like a person who tries to drive
a car with his eyes shut!)
"Edit file FILENAME.
Switch to a buffer visiting file FILENAME,
creating one if none already exists.
-Interactively, the default if you just type RET is the current directory,
+Interactively, the default if you just type @key{RET} is the current directory,
but the visited file name is available through the minibuffer history:
type M-n to pull it into the minibuffer.
What we want to look for is some command that prints or inserts
columns. Very likely, the name of the function will contain either
the word ``print'' or the word ``insert'' or the word ``column''.
-Therefore, we can simply type @kbd{M-x apropos RET
-print\|insert\|column RET} and look at the result. On my system, this
+Therefore, we can simply type @kbd{M-x apropos @key{RET}
+print\|insert\|column @key{RET}} and look at the result. On my system, this
command once took quite some time, and then produced a list of 79
functions and variables. Now it does not take much time at all and
produces a list of 211 functions and variables. Scanning down the
Type:
@smallexample
-M-x debug-on-entry RET triangle-bugged RET
+M-x debug-on-entry @key{RET} triangle-bugged @key{RET}
@end smallexample
@need 1250
@code{cancel-debug-on-entry} and the name of the function, like this:
@smallexample
-M-x cancel-debug-on-entry RET triangle-bugged RET
+M-x cancel-debug-on-entry @key{RET} triangle-bugged @key{RET}
@end smallexample
@noindent
and typing
@smallexample
-M-x edebug-defun RET
+M-x edebug-defun @key{RET}
@end smallexample
@noindent
In this instance, since the code is Lisp, the @file{*Help*} buffer
contains the name of the library containing the function's source.
-You can put point over the name of the library and press the RET key,
+You can put point over the name of the library and press the @key{RET} key,
which in this situation is bound to @code{help-follow}, and be taken
directly to the source, in the same way as @kbd{M-.}
(@code{find-tag}).
@kbd{-} as well as @kbd{*} to start Calc, and so in many cases the last
character of the prefix can simply be typed twice.
-Calc is controlled by many variables, most of which can be reset
-from within Calc. Some variables are less involved with actual
-calculation and can be set outside of Calc using Emacs's
-customization facilities. These variables are listed below.
-Typing @kbd{M-x customize-variable RET @var{variable-name} RET}
-will bring up a buffer in which the variable's value can be redefined.
-Typing @kbd{M-x customize-group RET calc RET} will bring up a buffer which
+Calc is controlled by many variables, most of which can be reset from
+within Calc. Some variables are less involved with actual calculation
+and can be set outside of Calc using Emacs's customization facilities.
+These variables are listed below. Typing @kbd{M-x customize-variable
+@key{RET} @var{variable-name} @key{RET}} will bring up a buffer in
+which the variable's value can be redefined. Typing @kbd{M-x
+customize-group @key{RET} calc @key{RET}} will bring up a buffer which
contains all of Calc's customizable variables. (These variables can
also be reset by putting the appropriate lines in your .emacs file;
@xref{Init File, ,Init File, emacs, The GNU Emacs Manual}.)
@deffn Command c-version
@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:
+You can find out what version of @ccmode{} you are using by visiting a
+C file and entering @kbd{M-x c-version @key{RET}}. You should see
+this message in the echo area:
@example
Using CC Mode version 5.XX
@item @kbd{M-b} @tab @code{backward-word} @tab @code{c-backward-subword}
@item @kbd{M-@@} @tab @code{mark-word} @tab @code{c-mark-subword}
@item @kbd{M-d} @tab @code{kill-word} @tab @code{c-kill-subword}
-@item @kbd{M-DEL} @tab @code{backward-kill-word} @tab @code{c-backward-kill-subword}
+@item @kbd{M-@key{DEL}} @tab @code{backward-kill-word} @tab @code{c-backward-kill-subword}
@item @kbd{M-t} @tab @code{transpose-words} @tab @code{c-transpose-subwords}
@item @kbd{M-c} @tab @code{capitalize-word} @tab @code{c-capitalize-subword}
@item @kbd{M-u} @tab @code{upcase-word} @tab @code{c-upcase-subword}
used is chosen.
Dired avoids switching to the current buffer, so that if you have a
-normal and a wildcard buffer for the same directory, @kbd{C-x d RET}
+normal and a wildcard buffer for the same directory, @kbd{C-x d @key{RET}}
will toggle between those two.
@end table
we'll start with something in @file{/tmp}.
@example
-C-x C-f /tmp/myproject/README RET
-M-x make-directory RET RET
+C-x C-f /tmp/myproject/README @key{RET}
+M-x make-directory @key{RET} @key{RET}
@end example
Now put some plain text in your README file to start.
Now, lets create the project:
@example
-M-x ede-new RET Automake RET myproject RET
+M-x ede-new @key{RET} Automake @key{RET} myproject @key{RET}
@end example
directories using the @kbd{+} key, and typing in new directories:
@example
-+ include RET
-+ src RET
++ include @key{RET}
++ src @key{RET}
@end example
Now I'll short-cut in this tutorial. Create the following files:
With @file{main.cpp} as your current buffer, type:
@example
-M-x ede-new RET Automake RET src RET
+M-x ede-new @key{RET} Automake @key{RET} src @key{RET}
@end example
and in @file{myproj.hh} as your current buffer, type:
@example
-M-x ede-new RET Automake RET include RET
+M-x ede-new @key{RET} Automake @key{RET} include @key{RET}
@end example
These steps effectively only create the Project.ede file in which you
Note: If for some reason a directory list buffer, or file does not have the
@samp{Project} menu item, or if @ede{} keybindings don't work, just
-use @kbd{M-x revert-buffer RET} to force a refresh. Sometimes
+use @kbd{M-x revert-buffer @key{RET}} to force a refresh. Sometimes
creating a new project doesn't restart buffers correctly.
Lets start with the header file. In @file{include/myproj.hh}, you
which is @kbd{C-c .}.
@example
-C-c . t includes RET miscellaneous RET y
+C-c . t includes @key{RET} miscellaneous @key{RET} y
@end example
@samp{Project} menu. You can create a new target with
@example
-. t myprogram RET program RET
+. t myprogram @key{RET} program @key{RET}
@end example
Note that @kbd{. t} is a command for creating a target. This command
that file to your target.
@example
-. a myprogram RET
+. a myprogram @key{RET}
@end example
Note that these prompts often have completion, so you can just press
Next, do the same for the library by placing the cursor on @file{mylib.cpp}.
@example
-. t mylib RET sharedobject RET
-. a mylib RET
+. t mylib @key{RET} sharedobject @key{RET}
+. a mylib @key{RET}
@end example
@section Step 5: Compile, and fail
Visit @file{main.cpp}.
@example
-M-x customize-project RET
+M-x customize-project @key{RET}
@end example
Select the @samp{[Settings]} subgroup of options. Under
treated globally, whereas dependencies for a target are target specific.
@example
-M-x customize-target RET
+M-x customize-target @key{RET}
@end example
On the first page, you will see an Ldlibs-local section. Add mylib to
You can run your program directly from @ede{}.
@example
-C-c . R RET RET
+C-c . R @key{RET} @key{RET}
@end example
If your program takes command line arguments, you can type them in
properly. In particular, it does not work if a subset of the leading
@acronym{ASCII} characters in a key sequence are recognized by Emacs as
having an existing binding. For example, if the keypad 7 (@key{KP7})
-key generates the sequence @samp{<ESC>Ow} and @samp{<ESC>O} is already
+key generates the sequence @samp{@key{ESC}Ow} and @samp{@key{ESC}O} is already
bound to a function, pressing @key{KP7} when told to do so by
@file{edt-mapper.el} will result in @file{edt-mapper.el} incorrectly
-mapping @samp{<ESC>O} to @key{KP7} and @samp{w} to @key{KP8}. If
+mapping @samp{@key{ESC}O} to @key{KP7} and @samp{w} to @key{KP8}. If
something like this happens to you, it is probably a bug in the support
for your keyboard within Emacs @strong{or} a bug in the Unix
termcap/terminfo support for your terminal @strong{or} a bug in the
written inside quotes or on lines by themselves, like this:
@display
- @kbd{M-x frobnicate-while-foo RET}
+ @kbd{M-x frobnicate-while-foo @key{RET}}
@end display
@noindent
@node Backspace invokes help
@section Why does the @key{Backspace} key invoke help?
-@cindex Backspace key invokes help
-@cindex Help invoked by Backspace
-@cindex DEL key does not delete
+@cindex @key{Backspace} key invokes help
+@cindex Help invoked by @key{Backspace}
+@cindex @key{DEL} key does not delete
The @key{Backspace} key (on most keyboards) generates @acronym{ASCII} code 8.
@kbd{C-h} sends the same code. In Emacs by default @kbd{C-h} invokes
undesirable if you actually intend to use them.
@node SPC no longer completes file names
-@section Why doesn't SPC complete file names anymore?
+@section Why doesn't @key{SPC} complete file names anymore?
@cindex @kbd{SPC} file name completion
Starting with Emacs 22.1, @kbd{SPC} no longer completes file names in
If you want to place ERC settings in their own file, you can place them
in @file{~/.emacs.d/.ercrc.el}, creating it if necessary.
-If you would rather use the Customize interface to change how ERC works,
-do @kbd{M-x customize-group RET erc RET}. In particular, ERC comes with
-lots of modules that may be enabled or disabled; to select which ones
-you want, do @kbd{M-x customize-variable RET erc-modules RET}.
+If you would rather use the Customize interface to change how ERC
+works, do @kbd{M-x customize-group @key{RET} erc @key{RET}}. In
+particular, ERC comes with lots of modules that may be enabled or
+disabled; to select which ones you want, do @kbd{M-x
+customize-variable @key{RET} erc-modules @key{RET}}.
@menu
* Sample Session:: Example of connecting to the #emacs channel
@item C-a or <home> (@code{erc-bol})
Go to beginning of line or end of prompt.
-@item RET (@code{erc-send-current-line})
+@item @key{RET} (@code{erc-send-current-line})
Send the current line
-@item TAB (@code{erc-complete-word})
+@item @key{TAB} (@code{erc-complete-word})
If at prompt, complete the current word.
Otherwise, move to the next link or button.
-@item M-TAB (@code{ispell-complete-word})
+@item M-@key{TAB} (@code{ispell-complete-word})
Complete the given word, using ispell.
@item C-c C-a (@code{erc-bol})
@item C-c C-f (@code{erc-toggle-flood-control})
Toggle use of flood control on sent messages.
-@item C-c TAB (@code{erc-invite-only-mode})
+@item C-c @key{TAB} (@code{erc-invite-only-mode})
Turn on the invite only mode (+i) for the current channel.
@item C-c C-j (@code{erc-join-channel})
modules are loaded.
There is a spiffy customize interface, which may be reached by typing
-@kbd{M-x customize-option erc-modules RET}. Alternatively, set
-@code{erc-modules} manually and then call @code{erc-update-modules}.
+@kbd{M-x customize-option @key{RET} erc-modules @key{RET}}.
+Alternatively, set @code{erc-modules} manually and then call
+@code{erc-update-modules}.
The following is a list of available modules.
This section is extremely incomplete. For now, the easiest way to
check out all the available options for ERC is to do
-@kbd{M-x customize-group erc RET}.
+@kbd{M-x customize-group @key{RET} erc @key{RET}}.
@defopt erc-hide-list
If non, @code{nil}, this is a list of IRC message types to hide, e.g.:
@item Make sure syntax table is correct in Eshell mode
-So that @kbd{M-DEL} acts in a predictable manner, etc.
+So that @kbd{M-@key{DEL}} acts in a predictable manner, etc.
@item Allow all Eshell buffers to share the same history and list-dir
Make it similar to the way that @file{esh-arg.el} is structured.
Then add parsing of @samp{$[?\n]}.
-@item After pressing @kbd{M-RET}, redisplay before running the next command
+@item After pressing @kbd{M-@key{RET}}, redisplay before running the next command
@item Argument predicates and modifiers should work anywhere in a path
@example
-/usr/local/src/editors/vim $ vi **/CVS(/)/Root(.)
-Invalid regexp: "Unmatched ( or \\("
+/usr/local/src/editors/vim $ vi **/CVS(/)/Root(.) Invalid regexp:
+"Unmatched ( or \\("
@end example
With @command{zsh}, the glob above expands to all files named
@file{Root} in directories named @file{CVS}.
-@item Typing @samp{echo $@{locate locate@}/bin<TAB>} results in a Lisp error
+@item Typing @samp{echo $@{locate locate@}/bin@key{TAB}} results in a Lisp error
Perhaps it should interpolate all permutations, and make that the
globbing result, since otherwise hitting return here will result in
An error should be generated only if @code{eshell-error-if-no-glob} is
non-@code{nil}.
-@item @samp{(+ RET SPC TAB} does not cause @code{indent-according-to-mode} to occur
+@item @samp{(+ @key{RET} @key{SPC} @key{TAB}} does not cause @code{indent-according-to-mode} to occur
@item Create @code{eshell-auto-accumulate-list}
@item Make @kbd{/} electric
So that it automatically expands and corrects pathnames. Or make
-pathname completion for Pcomplete auto-expand @samp{/u/i/std<TAB>} to
-@samp{/usr/include/std<TAB>}.
+pathname completion for Pcomplete auto-expand @samp{/u/i/std@key{TAB}} to
+@samp{/usr/include/std@key{TAB}}.
@item Write the @command{pushd} stack to disk along with @code{last-dir-ring}
@code{eshell-command} and invoke @command{ls}, and then use @kbd{M-x
eshell}, it doesn't display anything.
-@item @kbd{M-RET} during a long command (using smart display) doesn't work
+@item @kbd{M-@key{RET}} during a long command (using smart display) doesn't work
Since it keeps the cursor up where the command was invoked.
for the configuration files. However, you don't really
need to know what this means, it suffices that Emacs knows
what it means :-) You can type
-@samp{C-x C-f ~/.gnus.el RET }
+@samp{C-x C-f ~/.gnus.el @key{RET}}
(yes, with the forward slash, even on Windows), and
Emacs will open the right file for you. (It will most
likely be new, and thus empty.)
name HOME and value C:\myhome. Rebooting is not necessary.
Now to create @file{~/.gnus.el}, say
-@samp{C-x C-f ~/.gnus.el RET C-x C-s}.
+@samp{C-x C-f ~/.gnus.el @key{RET} C-x C-s}.
in Emacs.
@node FAQ 3-3
@subsubheading Answer
If you know the name of the group say @samp{U
-name.of.group RET} in group buffer (use the
+name.of.group @key{RET}} in group buffer (use the
tab-completion Luke). Otherwise hit ^ in group buffer,
this brings you to the server buffer. Now place point (the
cursor) over the server which carries the group you want,
-hit @samp{RET}, move point to the group
+hit @samp{@key{RET}}, move point to the group
you want to subscribe to and say @samp{u}
to subscribe to it.
@subsubheading Answer
If you enter the group by saying
-@samp{RET}
+@samp{@key{RET}}
in group buffer with point over the group, only unread and ticked messages are loaded. Say
-@samp{C-u RET}
+@samp{C-u @key{RET}}
instead to load all available messages. If you want only the 300 newest say
-@samp{C-u 300 RET}
+@samp{C-u 300 @key{RET}}
Loading only unread messages can be annoying if you have threaded view enabled, say
lowest-article-number = total-number-of-articles''. This
works OK for Usenet groups, but if you delete and move
many messages in mail groups, this fails. To cure the
-symptom, enter the group via @samp{C-u RET}
+symptom, enter the group via @samp{C-u @key{RET}}
(this makes Gnus get all messages), then
hit @samp{M P b} to mark all messages and
then say @samp{B m name.of.group} to move
@end example
@noindent
-Now you should be ready to go. Say @samp{M-x bbdb RET
-RET} to open a bbdb buffer showing all
+Now you should be ready to go. Say @samp{M-x bbdb @key{RET}
+@key{RET}} to open a bbdb buffer showing all
entries. Say @samp{c} to create a new
entry, @samp{b} to search your BBDB and
@samp{C-o} to add a new field to an
Now you've got to import this mbox file into Gnus. To do
this, create a nndoc group based on the mbox file by
-saying @samp{G f /path/file.mbox RET} in
+saying @samp{G f /path/file.mbox @key{RET}} in
Group buffer. You now have read-only access to your
mail. If you want to import the messages to your normal
Gnus mail groups hierarchy, enter the nndoc group you've
-just created by saying @samp{C-u RET}
+just created by saying @samp{C-u @key{RET}}
(thus making sure all messages are retrieved), mark all
messages by saying @samp{M P b} and
either copy them to the desired group by saying
-@samp{B c name.of.group RET} or send them
+@samp{B c name.of.group @key{RET}} or send them
through nnmail-split-methods (respool them) by saying
@samp{B r}.
@uref{http://groups.google.com, groups.google.com},
if you found the posting there, tell Google to display
the raw message, look for the message-id, and say
-@samp{M-^ the@@message.id RET} in a
+@samp{M-^ the@@message.id @key{RET}} in a
summary buffer.
Since Gnus 5.10 there's also a Gnus interface for
groups.google.com which you can call with
You can of course just mark the mail you don't need
anymore by saying @samp{#} with point
-over the mail and then say @samp{B DEL}
+over the mail and then say @samp{B @key{DEL}}
to get rid of them forever. You could also instead of
actually deleting them, send them to a junk-group by
saying @samp{B m nnml:trash-bin} which
@subsubheading Answer
The first stop should be the Gnus manual (Say
-@samp{C-h i d m Gnus RET} to start the
+@samp{C-h i d m Gnus @key{RET}} to start the
Gnus manual, then walk through the menus or do a
full-text search with @samp{s}). Then
there are the general Emacs help commands starting with
active file, see the node "The Active File" in the Gnus
manual for things you might try to speed the process up.
An other idea would be to byte compile your @file{~/.gnus.el} (say
-@samp{M-x byte-compile-file RET ~/.gnus.el
-RET} to do it). Finally, if you have require
+@samp{M-x byte-compile-file @key{RET} ~/.gnus.el
+@key{RET}} to do it). Finally, if you have require
statements in your .gnus, you could replace them with
@code{with-eval-after-load}, which loads the stuff not at startup
time, but when it's needed. Say you've got this in your
@itemize @bullet
@item The tool bar has been updated to use GNOME icons.
-You can also customize the tool bars: @kbd{M-x customize-apropos RET
+You can also customize the tool bars: @kbd{M-x customize-apropos @key{RET}
-tool-bar$} should get you started. (Only for Emacs, not in XEmacs.)
@c FIXME: Document this in the manual
@itemize @bullet
@item When you download the IDLWAVE distribution, make sure you save the
file under the names @file{idlwave.tar.gz}.
-@item M-TAB switches among running programs---use Esc-TAB
+@item M-@key{TAB} switches among running programs---use @key{ESC}-@key{TAB}
instead.
@item Other issues as yet unnamed...
@end itemize
You can customize the @code{ido} group to change Ido functionality:
@example
-M-x customize-group RET ido RET
+M-x customize-group @key{RET} ido @key{RET}
@end example
@noindent
or customize a certain variable:
@example
-M-x customize-variable RET ido-xxxxx
+M-x customize-variable @key{RET} ido-xxxxx @key{RET}
@end example
To modify the keybindings, use the @code{ido-setup-hook}. For example:
First, put @code{mairix.el} in your Emacs search path and put
@code{(require 'mairix)} into your @file{.emacs} file. Then, use
-@kbd{M-x customize-group mairix RET} to set your preferences for
-mairix.el. The most important items are @emph{Mairix File Path},
-@emph{Mairix Search File} and @emph{Mairix Mail Program}. The latter
-specifies which mail program should be used to display the mairix search
-results. Currently, RMail, Gnus with mbox files, and VM are supported.
-If you use Gnus with maildir or mh, use the native Gnus back end
-nnmairix instead.
+@kbd{M-x customize-group @key{RET} mairix @key{RET}} to set your
+preferences for mairix.el. The most important items are @emph{Mairix
+File Path}, @emph{Mairix Search File} and @emph{Mairix Mail Program}.
+The latter specifies which mail program should be used to display the
+mairix search results. Currently, RMail, Gnus with mbox files, and VM
+are supported. If you use Gnus with maildir or mh, use the native
+Gnus back end nnmairix instead.
If you use another Emacs mail program which is not yet supported by
mairix.el, it is pretty easy to integrate it. @xref{Extending},
@end menu
You can customize the Message Mode tool bar, see @kbd{M-x
-customize-apropos RET message-tool-bar}. This feature is only available
+customize-apropos @key{RET} message-tool-bar}. This feature is only available
in Emacs.
@node New Mail Message
@findex message-idna-to-ascii-rhs
If you want to experiment with the @acronym{IDNA} encoding, you can
-invoke @kbd{M-x message-idna-to-ascii-rhs RET} in the message buffer
+invoke @kbd{M-x message-idna-to-ascii-rhs @key{RET}} in the message buffer
to have the non-@acronym{ASCII} domain names encoded while you edit
the message.
information is sent, you may want to have some way to ensure that your
mail is actually signed or encrypted. After invoking the above
sign/encrypt commands, it is possible to preview the raw article by
-using @kbd{C-u C-c RET P} (@code{mml-preview}). Then you can
+using @kbd{C-u C-c @key{RET} P} (@code{mml-preview}). Then you can
verify that your long rant about what your ex-significant other or
whomever actually did with that funny looking person at that strange
party the other night, actually will be sent encrypted.
where your private key and your certificate is stored. @acronym{MML}
uses an Emacs interface to OpenSSL, aptly named @code{smime.el}, and it
contain a @code{custom} group used for this configuration. So, try
-@kbd{M-x customize-group RET smime RET} and look around.
+@kbd{M-x customize-group @key{RET} smime @key{RET}} and look around.
Currently there is no support for talking to a CA (or RA) to create
your own certificate. None is planned either. You need to do this
You can use dired to manipulate the folders themselves. For example, I
renamed my @samp{+out} folder to the more common @samp{+outbox} by
-running dired on my mail directory (@kbd{M-x dired RET ~/Mail RET}),
-moving my cursor to @samp{out} and using the command @kbd{R}
-(@code{dired-do-rename}).
+running dired on my mail directory (@kbd{M-x dired @key{RET} ~/Mail
+@key{RET}}), moving my cursor to @samp{out} and using the command
+@kbd{R} (@code{dired-do-rename}).
@node Sending Mail, Editing Drafts, Folders, Top
@chapter Sending Mail
@table @kbd
@cindex Get News
@item v
-@itemx RET
-@itemx <mouse-1>
+@itemx @key{RET}
+@itemx mouse-1
@findex newsticker-treeview-browse-url
Open the link to the full article (as contained in the current
headline) in your web browser @code{newsticker-treeview-browse-url}).
Miscellaneous
-* Completion:: M-TAB guesses completions
+* Completion:: M-@key{TAB} guesses completions
* Easy templates:: Quick insertion of structural elements
* Speed keys:: Electric commands at the beginning of a headline
* Code evaluation security:: Org mode files evaluate inline code
@subsubheading Using Emacs packaging system
Recent Emacs distributions include a packaging system which lets you install
-Elisp libraries. You can install Org with @kbd{M-x package-install RET org}.
+Elisp libraries. You can install Org with @kbd{M-x package-install @key{RET}
+org}.
@noindent @b{Important}: you need to do this in a session where no @code{.org} file has
been visited, i.e., where no Org built-in function have been loaded.
quite possible that the bug has been fixed already. If the bug persists,
prepare a report and provide as much information as possible, including the
version information of Emacs (@kbd{M-x emacs-version @key{RET}}) and Org
-(@kbd{M-x org-version RET}), as well as the Org related setup in the Emacs
-init file. The easiest way to do this is to use the command
+(@kbd{M-x org-version @key{RET}}), as well as the Org related setup in the
+Emacs init file. The easiest way to do this is to use the command
@example
-@kbd{M-x org-submit-bug-report RET}
+@kbd{M-x org-submit-bug-report @key{RET}}
@end example
@noindent which will put all this information into an Emacs mail buffer so
that you only need to add your description. If you are not sending the Email
contains much more information if it is produced with uncompiled code.
To do this, use
@example
-@kbd{C-u M-x org-reload RET}
+@kbd{C-u M-x org-reload @key{RET}}
@end example
@noindent
or select @code{Org -> Refresh/Reload -> Reload Org uncompiled} from the
Org mode uses begin...end blocks for various purposes from including source
code examples (@pxref{Literal examples}) to capturing time logging
information (@pxref{Clocking work time}). These blocks can be folded and
-unfolded by pressing TAB in the begin line. You can also get all blocks
+unfolded by pressing @key{TAB} in the begin line. You can also get all blocks
folded at startup by configuring the option @code{org-hide-block-startup}
or on a per-file basis by using
If you like the intuitive way the Org mode structure editing and list
formatting works, you might want to use these commands in other modes like
Text mode or Mail mode as well. The minor mode @code{orgstruct-mode} makes
-this possible. Toggle the mode with @kbd{M-x orgstruct-mode RET}, or
+this possible. Toggle the mode with @kbd{M-x orgstruct-mode @key{RET}}, or
turn it on by default, for example in Message mode, with one of:
@lisp
To explore the abstract structure of an Org buffer, run this in a buffer:
@lisp
-M-: (org-element-parse-buffer) RET
+M-: (org-element-parse-buffer) @key{RET}
@end lisp
It will output a list containing the buffer's content represented as an
@orgcmd{C-c C-c,org-table-align}
Re-align the table and don't move to another field.
@c
-@orgcmd{C-c SPC,org-table-blank-field}
+@orgcmd{C-c @key{SPC},org-table-blank-field}
Blank the field at point.
@c
-@orgcmd{TAB,org-table-next-field}
+@orgcmd{@key{TAB},org-table-next-field}
Re-align the table, move to the next field. Creates a new row if
necessary.
@c
field. The follow mode exits automatically when the cursor leaves the table,
or when you repeat this command with @kbd{C-u C-u C-c `}.
@c
-@item M-x org-table-import RET
+@item M-x org-table-import @key{RET}
Import a file as a table. The table should be TAB or whitespace
separated. Use, for example, to import a spreadsheet table or data
from a database, because these programs generally can write
buffer, selecting the pasted text with @kbd{C-x C-x} and then using the
@kbd{C-c |} command (see above under @i{Creation and conversion}).
@c
-@item M-x org-table-export RET
+@item M-x org-table-export @key{RET}
@findex org-table-export
@vindex org-table-export-default-format
Export the table, by default as a TAB-separated file. Use for data
@cindex Orgtbl mode
@cindex minor mode for tables
-If you like the intuitive way the Org table editor works, you
-might also want to use it in other modes like Text mode or Mail mode.
-The minor mode Orgtbl mode makes this possible. You can always toggle
-the mode with @kbd{M-x orgtbl-mode RET}. To turn it on by default, for
-example in Message mode, use
+If you like the intuitive way the Org table editor works, you might also want
+to use it in other modes like Text mode or Mail mode. The minor mode Orgtbl
+mode makes this possible. You can always toggle the mode with @kbd{M-x
+orgtbl-mode @key{RET}}. To turn it on by default, for example in Message
+mode, use
@lisp
(add-hook 'message-mode-hook 'turn-on-orgtbl)
Iterate the table by recomputing it until no further changes occur.
This may be necessary if some computed fields use the value of other
fields that are computed @i{later} in the calculation sequence.
-@item M-x org-table-recalculate-buffer-tables RET
+@item M-x org-table-recalculate-buffer-tables @key{RET}
@findex org-table-recalculate-buffer-tables
Recompute all tables in the current buffer.
-@item M-x org-table-iterate-buffer-tables RET
+@item M-x org-table-iterate-buffer-tables @key{RET}
@findex org-table-iterate-buffer-tables
Iterate all tables in the current buffer, in order to converge table-to-table
dependencies.
@end lisp
@vindex org-fast-tag-selection-include-todo
-If you then press @kbd{C-c C-t} followed by the selection key, the entry
-will be switched to this state. @kbd{SPC} can be used to remove any TODO
+If you then press @kbd{C-c C-t} followed by the selection key, the entry will
+be switched to this state. @kbd{@key{SPC}} can be used to remove any TODO
keyword from an entry.@footnote{Check also the option
@code{org-fast-tag-selection-include-todo}, it allows you to change the TODO
state through the tags interface (@pxref{Setting tags}), in case you like to
DONE states, a line @samp{CLOSED: [timestamp]} will be inserted just after
the headline. If you turn the entry back into a TODO item through further
state cycling, that line will be removed again. If you turn the entry back
-to a non-TODO state (by pressing @key{C-c C-t SPC} for example), that line
+to a non-TODO state (by pressing @key{C-c C-t @key{SPC}} for example), that line
will also be removed, unless you set @code{org-closed-keep-when-no-todo} to
non-@code{nil}. If you want to record a note along with the timestamp,
use@footnote{The corresponding in-buffer setting is: @code{#+STARTUP:
want to get the notes out of the way into a drawer (@pxref{Drawers}).
Customize @code{org-log-into-drawer} to get this behavior---the recommended
drawer for this is called @code{LOGBOOK}@footnote{Note that the
-@code{LOGBOOK} drawer is unfolded when pressing @key{SPC} in the agenda to
-show an entry---use @key{C-u SPC} to keep it folded here}. You can also
+@code{LOGBOOK} drawer is unfolded when pressing @kbd{@key{SPC}} in the agenda to
+show an entry---use @kbd{C-u @key{SPC}} to keep it folded here}. You can also
overrule the setting of this variable for a subtree by setting a
@code{LOG_INTO_DRAWER} property.
@orgcmd{C-c C-x p,org-set-property}
Set a property. This prompts for a property name and a value. If
necessary, the property drawer is created as well.
-@item C-u M-x org-insert-drawer RET
+@item C-u M-x org-insert-drawer @key{RET}
@cindex @code{org-insert-drawer}
Insert a property drawer into the current entry. The drawer will be
inserted early in the entry, but after the lines with planning
@r{run column view at the top of this file}
"@var{ID}" @r{call column view in the tree that has an @code{:ID:}}
@r{property with the value @i{label}. You can use}
- @r{@kbd{M-x org-id-copy RET} to create a globally unique @code{ID} for}
+ @r{@kbd{M-x org-id-copy @key{RET}} to create a globally unique @code{ID} for}
@r{the current entry and copy it to the kill-ring.}
@end example
@item :hlines
to a recovery event rather than a set amount of idle time.
You can also check all the files visited by your Org agenda for dangling
-clocks at any time using @kbd{M-x org-resolve-clocks RET} (or @kbd{C-c C-x C-z}).
+clocks at any time using @kbd{M-x org-resolve-clocks @key{RET}} (or @kbd{C-c
+C-x C-z}).
@subsubheading Continuous clocking
@cindex continuous clocking
it and use the setup described below. To convert your
@code{org-remember-templates}, run the command
@example
-@kbd{M-x org-capture-import-remember-templates RET}
+@kbd{M-x org-capture-import-remember-templates @key{RET}}
@end example
@noindent and then customize the new variable with @kbd{M-x
customize-variable org-capture-templates}, check the result, and save the
found, the command offers to set the ARCHIVE tag for the child. If the
cursor is @emph{not} on a headline when this command is invoked, the
level 1 trees will be checked.
-@orgcmd{C-@kbd{TAB},org-force-cycle-archived}
+@orgcmd{C-@key{TAB},org-force-cycle-archived}
Cycle a tree even if it is tagged with ARCHIVE.
@orgcmd{C-c C-x A,org-archive-to-archive-sibling}
Move the current entry to the @emph{Archive Sibling}. This is a sibling of
@orgcmd{C-',org-cycle-agenda-files}
@itemx C-,
Cycle through agenda file list, visiting one file after the other.
-@item M-x org-iswitchb RET
+@item M-x org-iswitchb @key{RET}
Command to use an @code{iswitchb}-like interface to switch to and between Org
buffers.
@end table
Org also supports automatic, context-aware tag filtering. If the variable
@code{org-agenda-auto-exclude-function} is set to a user-defined function,
that function can decide which tags should be excluded from the agenda
-automatically. Once this is set, the @kbd{/} command then accepts @kbd{RET}
-as a sub-option key and runs the auto exclusion logic. For example, let's
-say you use a @code{Net} tag to identify tasks which need network access, an
-@code{Errand} tag for errands in town, and a @code{Call} tag for making phone
-calls. You could auto-exclude these tags based on the availability of the
-Internet, and outside of business hours, with something like this:
+automatically. Once this is set, the @kbd{/} command then accepts
+@kbd{@key{RET}} as a sub-option key and runs the auto exclusion logic. For
+example, let's say you use a @code{Net} tag to identify tasks which need
+network access, an @code{Errand} tag for errands in town, and a @code{Call}
+tag for making phone calls. You could auto-exclude these tags based on the
+availability of the Internet, and outside of business hours, with something
+like this:
@smalllisp
@group
@xorgcmd{v t,org-agenda-fortnight-view}
@xorgcmd{v m,org-agenda-month-view}
@xorgcmd{v y,org-agenda-year-view}
-@xorgcmd{v SPC,org-agenda-reset-view}
+@xorgcmd{v @key{SPC},org-agenda-reset-view}
@vindex org-agenda-span
Switch to day/week/month/year view. When switching to day or week view, this
setting becomes the default for subsequent agenda refreshes. Since month and
@orgcmd{H,org-agenda-holidays}
Show holidays for three months around the cursor date.
-@item M-x org-icalendar-combine-agenda-files RET
+@item M-x org-icalendar-combine-agenda-files @key{RET}
Export a single iCalendar file containing entries from all agenda files.
This is a globally available command, and also available in the agenda menu.
CD@LaTeX{} mode is a minor mode that is normally used in combination with a
major @LaTeX{} mode like AUC@TeX{} in order to speed-up insertion of
-environments and math templates. Inside Org mode, you can make use of
-some of the features of CD@LaTeX{} mode. You need to install
-@file{cdlatex.el} and @file{texmathp.el} (the latter comes also with
-AUC@TeX{}) from @url{https://staff.fnwi.uva.nl/c.dominik/Tools/cdlatex}.
-Don't use CD@LaTeX{} mode itself under Org mode, but use the light
-version @code{org-cdlatex-mode} that comes as part of Org mode. Turn it
-on for the current buffer with @kbd{M-x org-cdlatex-mode RET}, or for all
-Org files with
+environments and math templates. Inside Org mode, you can make use of some
+of the features of CD@LaTeX{} mode. You need to install @file{cdlatex.el}
+and @file{texmathp.el} (the latter comes also with AUC@TeX{}) from
+@url{https://staff.fnwi.uva.nl/c.dominik/Tools/cdlatex}. Don't use
+CD@LaTeX{} mode itself under Org mode, but use the light version
+@code{org-cdlatex-mode} that comes as part of Org mode. Turn it on for the
+current buffer with @kbd{M-x org-cdlatex-mode @key{RET}}, or for all Org
+files with
@lisp
(add-hook 'org-mode-hook 'turn-on-org-cdlatex)
environment abbreviations at the beginning of a line. For example, if
you write @samp{equ} at the beginning of a line and press @key{TAB},
this abbreviation will be expanded to an @code{equation} environment.
-To get a list of all abbreviations, type @kbd{M-x cdlatex-command-help RET}.
+To get a list of all abbreviations, type @kbd{M-x cdlatex-command-help
+@key{RET}}.
@item
@kindex _
@kindex ^
@code{Insert template} command by pressing @key{#}. To insert keywords
individually, a good way to make sure the keyword is correct is to type
@code{#+} and then to use @kbd{M-@key{TAB}}@footnote{Many desktops intercept
-@kbd{M-TAB} to switch windows. Use @kbd{C-M-i} or @kbd{@key{ESC} @key{TAB}}
-instead.} for completion.
+@kbd{M-@key{TAB}} to switch windows. Use @kbd{C-M-i} or @kbd{@key{ESC}
+@key{TAB}} instead.} for completion.
The export keywords available for every back-end, and their equivalent global
variables, include:
@vindex org-odt-convert
@table @kbd
-@item M-x org-odt-convert RET
+@item M-x org-odt-convert @key{RET}
Convert an existing document from one format to another. With a prefix
argument, opens the newly produced file.
@end table
the following commands:
@table @kbd
-@item M-x org-odt-export-as-odf RET
+@item M-x org-odt-export-as-odf @key{RET}
Convert a @LaTeX{} math snippet to an OpenDocument formula (@file{.odf}) file.
-@item M-x org-odt-export-as-odf-and-open RET
+@item M-x org-odt-export-as-odf-and-open @key{RET}
Convert a @LaTeX{} math snippet to an OpenDocument formula (@file{.odf}) file
and open the formula file with the system-registered application.
@end table
and lists in foreign buffers. For example, turn on the minor mode @code{M-x
orgstruct-mode} in an HTML buffer, then use the convenient Org keyboard
commands to create a list, select it, and covert it to HTML with @code{M-x
-org-html-convert-region-to-html RET}.
+org-html-convert-region-to-html @key{RET}}.
@node Publishing
it is a table. Usage example: @code{:results value raw}.
@item @code{org}
Results enclosed in a @code{BEGIN_SRC org} block. For comma-escape, either
-@kbd{TAB} in the block, or export the file. Usage example: @code{:results
+@key{TAB} in the block, or export the file. Usage example: @code{:results
value org}.
@item @code{html}
Results enclosed in a @code{BEGIN_EXPORT html} block. Usage example:
code block execution. If it is absent, then the directory associated with
the current buffer is used. In other words, supplying @code{:dir path}
temporarily has the same effect as changing the current directory with
-@kbd{M-x cd path RET}, and then not supplying @code{:dir}. Under the
+@kbd{M-x cd path @key{RET}}, and then not supplying @code{:dir}. Under the
surface, @code{:dir} simply sets the value of the Emacs variable
@code{default-directory}.
@chapter Miscellaneous
@menu
-* Completion:: M-TAB guesses completions
+* Completion:: M-@key{TAB} guesses completions
* Easy templates:: Quick insertion of structural elements
* Speed keys:: Electric commands at the beginning of a headline
* Code evaluation security:: Org mode files evaluate inline code
@cindex variables, for customization
Org has more than 500 variables for customization. They can be accessed
-through the usual @kbd{M-x org-customize RET} command. Or through the Org
-menu, @code{Org->Customization->Browse Org Group}. Org also has per-file
+through the usual @kbd{M-x org-customize @key{RET}} command. Or through the
+Org menu, @code{Org->Customization->Browse Org Group}. Org also has per-file
settings for some variables (@pxref{In-buffer settings}).
@node In-buffer settings
@end example
To switch between single and double stars layouts, use @kbd{M-x
-org-convert-to-odd-levels RET} and @kbd{M-x org-convert-to-oddeven-levels}.
+org-convert-to-odd-levels @key{RET}} and @kbd{M-x
+org-convert-to-oddeven-levels @key{RET}}.
@end enumerate
@node TTY keys
selection).
@example
-S-UP @result{} M-p S-DOWN @result{} M-n
-S-LEFT @result{} M-- S-RIGHT @result{} M-+
-C-S-LEFT @result{} M-S-- C-S-RIGHT @result{} M-S-+
+S-@key{UP} @result{} M-p S-@key{DOWN} @result{} M-n
+S-@key{LEFT} @result{} M-- S-@key{RIGHT} @result{} M-+
+C-S-@key{LEFT} @result{} M-S-- C-S-@key{RIGHT} @result{} M-S-+
@end example
@vindex org-disputed-keys
@TeX{} and @samp{\end@{document@}} in @LaTeX{}.
@item
Comment and uncomment each line of the table during edits. The @kbd{M-x
-orgtbl-toggle-comment RET} command makes toggling easy.
+orgtbl-toggle-comment @key{RET}} command makes toggling easy.
@end itemize
@node A @LaTeX{} example
radio table skeleton@footnote{By default this works only for @LaTeX{}, HTML,
and Texinfo. Configure the variable @code{orgtbl-radio-table-templates} to
install templates for other export formats.} with the command @kbd{M-x
-orgtbl-insert-radio-table RET}, which prompts for a table name. For example,
-if @samp{salesfigures} is the name, the template inserts:
+orgtbl-insert-radio-table @key{RET}}, which prompts for a table name. For
+example, if @samp{salesfigures} is the name, the template inserts:
@cindex @code{#+ORGTBL}, @samp{SEND}
@example
@node Top
@top PCL-CVS
-This manual describes PCL-CVS, the GNU Emacs front-end to CVS@. It
-is nowhere near complete, so you are advised to use @kbd{M-x
-customize-group RET pcl-cvs @key{RET}} and to look at the documentation strings
-of the various commands and major modes for further information.
+This manual describes PCL-CVS, the GNU Emacs front-end to CVS@. It is
+nowhere near complete, so you are advised to use @kbd{M-x
+customize-group @key{RET} pcl-cvs @key{RET}} and to look at the
+documentation strings of the various commands and major modes for
+further information.
@c This manual is updated to release 2.5 of PCL-CVS.
@insertcopying
them (@code{cvs-mode-tag}). It's usually preferable to tag a directory
at a time. Rather than selecting all files (which too often doesn't
select all files but only the few that are displayed), clear the
-selection with @kbd{M-DEL} (@code{cvs-mode-unmark-all-files}), position
+selection with @kbd{M-@key{DEL}} (@code{cvs-mode-unmark-all-files}), position
the cursor on the directory you want to tag and hit @kbd{t}.
@end table
@findex keyboard-quit
To create a new spreadsheet, visit a nonexistent file whose name ends
- with ".ses". For example, @kbd{C-x C-f test.ses RET}.
+with ".ses". For example, @kbd{C-x C-f test.ses @key{RET}}.
A @dfn{cell identifier} is a symbol with a column letter and a row
erase the digit and type whatever you want.
@table @kbd
-@item RET
+@item @key{RET}
Edit the existing formula in the current cell (@code{ses-edit-cell}).
@item C-c C-c
@item w
(@code{ses-set-column-width})
-@item TAB
+@item @key{TAB}
Moves point to the next rightward cell, or inserts a new column if
already at last cell on line, or inserts a new row if at endline
(@code{ses-forward-or-insert}).
These commands set both formula and printer to @code{nil}:
@table @kbd
-@item DEL
+@item @key{DEL}
Clear cell and move left (@code{ses-clear-cell-backward}).
@item C-d
@table @kbd
-@item C-c RET
+@item C-c @key{RET}
@kindex C-c RET
@findex sieve-manage
@cindex manage remote sieve script
@end example
One of the scripts are highlighted, and standard point navigation
-commands (@kbd{<up>}, @kbd{<down>} etc.)@: can be used to navigate the
-list.
+commands (@kbd{@key{UP}}, @kbd{@key{DOWN}} etc.)@: can be used to
+navigate the list.
The following commands are available in the Manage Sieve buffer:
@findex sieve-remove
Remove currently highlighted script.
-@item RET
+@item @key{RET}
@item mouse-2
@item f
@kindex RET
for talking to a server with the @sc{managesieve} protocol.
A number of user-visible variables exist, which all can be customized
-in the @code{sieve} group (@kbd{M-x customize-group RET sieve RET}):
+in the @code{sieve} group (@kbd{M-x customize-group @key{RET} sieve @key{RET}}):
@table @code
The function @code{smtpmail-send-queued-mail} can be used to send
any queued mail when @code{smtpmail-queue-mail} is enabled. It is
typically invoked interactively with @kbd{M-x
-smtpmail-send-queued-mail RET} when you are connected to the internet.
+smtpmail-send-queued-mail @key{RET}} when you are connected to the internet.
@node Server workarounds
@chapter Server workarounds
@chapter Introduction
@cindex introduction
-To start using speedbar use the command @kbd{M-x speedbar RET} or
+To start using speedbar use the command @kbd{M-x speedbar @key{RET}} or
select it from the @samp{Options->Show/Hide} sub-menu. This command
will open a new frame to summarize the local files. On X Window
systems or on MS-Windows, speedbar's frame is twenty characters wide,
@cindex common keys
@table @kbd
-@item RET
+@item @key{RET}
@itemx e
Edit/Open the current group or tag. This behavior is dependent on the
mode. In general, files or buffers are opened in the attached frame,
To toggle @srecode{} minor mode on and off use:
@example
-M-x srecode-minor-mode RET
+M-x srecode-minor-mode @key{RET}
@end example
or
@example
-M-x global-srecode-minor-mode RET
+M-x global-srecode-minor-mode @key{RET}
@end example
or add
instead create ``fields'' in the buffer. A field-editing layer
provides simple interaction through the fields. Typing in a field
will cause all variable locations that are the same to edit at the
-same time. Pressing TAB on a field will move you to the next field.
+same time. Pressing @kbd{@key{TAB}} on a field will move you to the
+next field.
@node SRecode Minor Mode
@chapter SRecode Minor Mode
The Semantic Recode minor mode enables a keymap and menu that provides
simple access to different templates or template applications.
-The key prefix is @key{C-c /}.
+The key prefix is @kbd{C-c /}.
If the variable @code{srecode-takeover-INS-key} is set, then the key
-@key{<insert>} can also be used.
+@kbd{@key{INSERT}} can also be used.
The most important key is bound to @code{srecode-insert} which is
-@key{C-c / /}, or @key{insert insert}. @ref{Quick Start}.
+@kbd{C-c / /}, or @kbd{@key{INSERT} @key{INSERT}}. @ref{Quick Start}.
Major keybindings are:
-@table @key
+@table @kbd
@item C-c / /
Insert a template whose name is typed into the minibuffer.
@item C-c / <lower case letter>
inserted. Instead, short regions will be highlighted, and the cursor
placed in a field. Typing in the field will then fill in the value.
Several fields might be linked together. In that case, typing in one
-area will modify the other linked areas. Pressing TAB will move
+area will modify the other linked areas. Pressing @key{TAB} will move
between editable fields in the template.
Once the cursor moves out of the are inserted by the template, all the
The major version number was incremented to 3 with the addition of
many new features for editing VHDL code to the new indentation engine,
which was introduced in major version 2. To find the minor revision
-number of this release, use @kbd{M-x vhdl-version RET}.
+number of this release, use @kbd{M-x vhdl-version @key{RET}}.
A special word of thanks goes to Rod Whitby, who wrote the
VHDL Mode indentation engine, and to Barry Warsaw, who wrote
@cindex Getting Connected
To get started, simply visit a @file{.vhd} file in Emacs; or type
-@kbd{M-x vhdl-mode RET}.
+@kbd{M-x vhdl-mode @key{RET}}.
@node New Indentation Engine
@chapter New Indentation Engine
@vindex vhdl-echo-syntactic-information-p
@vindex echo-syntactic-information-p @r{(vhdl-)}
-@cindex TAB
+@cindex @key{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
syntactic component list and calculated offset will always be echoed in
-the minibuffer when you hit @kbd{TAB}.
+the minibuffer when you hit @kbd{@key{TAB}}.
@ignore
@findex vhdl-set-style
@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.
+type @kbd{M-x vhdl-set-style @key{RET}} in a VHDL Mode buffer.
You will be prompted for one of the above styles (with completion).
Enter one of the styles and hit @kbd{RET}. Note however that setting a
In Vi, @kbd{C-g} is used to get information about the file associated to
the current buffer. Here, @kbd{g} will do that, and @kbd{C-g} is
used to abort a command (this is for compatibility with emacs mode.)
-@item SPC
+@item @key{SPC}
@itemx @key{RET}
@kindex 040 SPC @r{(}@code{vip-scroll}@r{)}
@kindex 015 RET @r{(}@code{vip-scroll-back}@r{)}
Search backward incrementally (@code{isearch-backward}).
@cindex vanilla (replacement)
@cindex regular expression (replacement)
-@item R @var{string} RET @var{newstring}
+@item R @var{string} @key{RET} @var{newstring}
@kindex 122 R @r{(}@code{vip-replace-string}@r{)}
There are two modes of replacement, @dfn{vanilla} and @dfn{regular expression}.
If the mode is @i{vanilla} you will get a prompt @samp{Replace string:},
@var{newstring}. If the mode is regular expression, @var{string} is
treated as a regular expression and every string matching the regular
expression is replaced with @var{newstring} (@code{vip-replace-string}).
-@item Q @var{string} RET @var{newstring}
+@item Q @var{string} @key{RET} @var{newstring}
@kindex 121 Q @r{(}@code{vip-query-replace}@r{)}
Same as @kbd{R} except that you will be asked form confirmation before each
replacement
@item C-@@
@kindex 000 C-@@ @r{(}@code{set-mark-command}@r{)}
Set mark and push previous mark on mark ring (@code{set-mark-command}).
-@item TAB
+@item @key{TAB}
@kindex 011 TAB @r{(}@code{indent-for-tab-command}@r{)}
Indent line for current major mode (@code{indent-for-tab-command}).
@item C-j
where @samp{register} is any character from @samp{a} through @samp{z}. Then
you can execute this macro using @kbd{@@register}. It is, of course,
possible to yank some text into a register and execute it using
-@kbd{@@register}. Typing @kbd{@@@@}, @kbd{@@RET}, or @kbd{@@C-j} will
+@kbd{@@register}. Typing @kbd{@@@@}, @kbd{@@@key{RET}}, or @kbd{@@C-j} will
execute the last macro that was executed using @kbd{@@register}.
Viper will automatically lowercase the register, so that pressing the