File: em-smart.el.html

The best way to get a sense of what this code is trying to do is by using it. Basically, the philosophy represents a blend between the ease of use of modern day shells, and the review-before-you-proceed mentality of Plan 9's 9term.

@ When you invoke a command, it is assumed that you want to read
  the output of that command.

@ If the output is not what you wanted, it is assumed that you will
  want to edit, and then resubmit a refined version of that
  command.

@ If the output is valid, pressing any self-inserting character key
  will jump to end of the buffer and insert that character, in
  order to begin entry of a new command.

@ If you show an intention to edit the previous command -- by
  moving around within it -- then the next self-inserting
  characters will insert *there*, instead of at the bottom of the
  buffer.

@ If you show an intention to review old commands, such as M-p or
  M-r, point will jump to the bottom of the buffer before invoking
  that command.

@ If none of the above has happened yet (i.e., your point is just
  sitting on the previous command), you can use SPACE and BACKSPACE
  (or DELETE) to page forward and backward *through the output of
  the last command only*. It will constrain the movement of the
  point and window so that the maximum amount of output is always
  displayed at all times.

@ While output is being generated from a command, the window will
  be constantly reconfigured (until it would otherwise make no
  difference) in order to always show you the most output from the
  command possible. This happens if you change window sizes,
  scroll, etc.

@ Like I said, it's not really comprehensible until you try it! ;)

One disadvantage of this module is that it increases Eshell's memory consumption by a factor of two or more. With small commands
(such as pwd), where the screen is mostly full, consumption can
increase by orders of magnitude.

Defined variables (6)

eshell-review-quick-commandsIf t, always review commands.
eshell-smart-display-navigate-listA list of commands which cause Eshell to jump to the end of buffer.
eshell-smart-load-hookA list of functions to call when loading ‘eshell-smart’.
eshell-smart-space-goes-to-endIf non-nil, space will go to end of buffer when ‘point-max’ is visible.
eshell-smart-unload-hookA hook that gets run when ‘eshell-smart’ is unloaded.
eshell-where-to-jumpThe location where point should jump to after a command.

Defined functions (8)

eshell-disable-after-change(B E L)
eshell-smart-display-move()
eshell-smart-display-setup()
eshell-smart-goto-end()
eshell-smart-initialize()
eshell-smart-maybe-jump-to-end()
eshell-smart-scroll()
eshell-smart-scroll-windows()

Defined faces (0)