Previous: Shell History Copying, Up: Shell History
Various shells including csh and bash support history references that begin with `!' and `^'. Shell mode recognizes these constructs, and can perform the history substitution for you.
If you insert a history reference and type <TAB>, this searches the input history for a matching command, performs substitution if necessary, and places the result in the buffer in place of the history reference. For example, you can fetch the most recent command beginning with `mv' with ! m v <TAB>. You can edit the command if you wish, and then resubmit the command to the shell by typing <RET>.
Shell mode can optionally expand history references in the buffer
when you send them to the shell. To request this, set the variable
comint-input-autoexpand
to input
. You can make
<SPC> perform history expansion by binding <SPC> to the
command comint-magic-space
.
Shell mode recognizes history references when they follow a prompt.
Normally, any text output by a program at the beginning of an input
line is considered a prompt. However, if the variable
comint-use-prompt-regexp-instead-of-fields
is non-nil
,
then Comint mode uses a regular expression to recognize prompts. In
general, the variable comint-prompt-regexp
specifies the
regular expression; Shell mode uses the variable
shell-prompt-pattern
to set up comint-prompt-regexp
in
the shell buffer.