Next: Bugs and ideas, Previous: Input/Output, Up: Top [Contents][Index]
Eshell provides a facility for defining extension modules so that they
can be disabled and enabled without having to unload and reload them,
and to provide a common parent Customize group for the
modules.9  An Eshell
module is defined the same as any other library but one requirement: the
module must define a Customize10
group using eshell-defgroup (in place of defgroup) with
eshell-module as the parent group.11  You also need to load the following as shown:
(eval-when-compile (require 'cl-lib) (require 'esh-mode) (require 'eshell)) (require 'esh-util)
| • Writing a module: | ||
| • Module testing: | ||
| • Directory handling: | ||
| • Key rebinding: | ||
| • Smart scrolling: | ||
| • Terminal emulation: | 
ERC provides a similar module facility.
See Customization in The Emacs Lisp Reference Manual.
If the module has no user-customizable options, then there is no need to define it as an Eshell module.