File: esh-mode.el.html
Basically, Eshell is used just like shell mode (<M-x shell>). The
keystrokes for navigating the buffer, and accessing the command
history, are identical. Unlike shell mode, however, Eshell mode's
governing process is Emacs itself. With shell mode, an inferior
shell process is executed that communicates with Emacs via comint
-- a mode for handling sub-process interaction. Eshell mode, on
the other hand, is a truly native Emacs shell. No subprocess are
invoked except the ones requested by the user at the prompt.
After entering a command, use <RET> to invoke it ([Command invocation]) . If there is a command on disk, it will be executed as in a normal shell. If there is no command by that name on disk, but a Lisp function with that name is defined, the Lisp function will be called, using the arguments passed on the command line.
Some of the other features of the command interaction mode are:
@ <M-RET> can be used to accumulate further commands while a
command is currently running. Since all input is passed to the
subprocess being executed, there is no automatic input queueing
as there is with other shells.
@ <C-c C-t> can be used to truncate the buffer if it grows too
large.
@ <C-c C-r> will move point to the beginning of the output of the
last command. With a prefix argument, it will narrow to view
only that output.
@ <C-c C-o> will delete the output from the last command.
@ <C-c C-f> will move forward a complete shell argument.
@ <C-c C-b> will move backward a complete shell argument.
Defined variables (23)
eshell-buffer-maximum-lines | The maximum size in lines for eshell buffers. |
eshell-directory-name | The directory where Eshell control files should be kept. |
eshell-exit-hook | A hook that is run whenever ‘eshell’ is exited. |
eshell-expand-input-functions | Functions to call before input is parsed. |
eshell-first-time-mode-hook | A hook that gets run the first time ‘eshell-mode’ is entered. |
eshell-first-time-p | A variable which is non-nil the first time Eshell is loaded. |
eshell-input-filter-functions | Functions to call before input is processed. |
eshell-kill-on-exit | If non-nil, kill the Eshell buffer on the ‘exit’ command. |
eshell-mode-abbrev-table | Abbrev table for ‘eshell-mode’. |
eshell-mode-hook | A hook that gets run when ‘eshell-mode’ is entered. |
eshell-mode-map | Keymap for ‘eshell-mode’. |
eshell-mode-syntax-table | Syntax table for ‘eshell-mode’. |
eshell-mode-unload-hook | A hook that gets run when ‘eshell-mode’ is unloaded. |
eshell-output-filter-functions | Functions to call before output is displayed. |
eshell-password-prompt-regexp | Regexp matching prompts for passwords in the inferior process. |
eshell-preoutput-filter-functions | Functions to call before output is inserted into the buffer. |
eshell-scroll-show-maximum-output | Controls how interpreter output causes window to scroll. |
eshell-scroll-to-bottom-on-input | Controls whether input to interpreter causes window to scroll. |
eshell-scroll-to-bottom-on-output | Controls whether interpreter output causes window to scroll. |
eshell-send-direct-to-subprocesses | If t, send any input immediately to a subprocess. |
eshell-skip-prompt-function | A function called from beginning of line to skip the prompt. |
eshell-status-in-mode-line | If non-nil, let the user know a command is running in the mode line. |
eshell-status-in-modeline | If non-nil, let the user know a command is running in the mode line. |