Function: eshell-smart-display-move
eshell-smart-display-move is a byte-compiled function defined in
em-smart.el.gz.
Signature
(eshell-smart-display-move)
Documentation
Handle self-inserting or movement commands intelligently.
Source Code
;; Defined in /usr/src/emacs/lisp/eshell/em-smart.el.gz
(defun eshell-smart-display-move ()
"Handle self-inserting or movement commands intelligently."
(let (clear)
(if (or current-prefix-arg
(and (> (point) eshell-last-input-start)
(< (point) eshell-last-input-end))
(>= (point) eshell-last-output-end))
(setq clear t)
(cond
((eq this-command 'self-insert-command)
(if (eq last-command-event ? )
(if (and eshell-smart-space-goes-to-end
eshell-foreground-command)
(if (not (pos-visible-in-window-p (point-max)))
(setq this-command 'scroll-up)
(setq this-command 'eshell-smart-goto-end))
(setq this-command 'scroll-up))
(setq clear t)
(goto-char (point-max))))
((eq this-command 'delete-backward-char)
(setq this-command 'ignore)
(if (< (point) eshell-last-input-start)
(eshell-show-output)
(if (pos-visible-in-window-p eshell-last-input-start)
(progn
(ignore-errors
(scroll-down))
(eshell-show-output))
(scroll-down)
(if (pos-visible-in-window-p eshell-last-input-end)
(eshell-show-output)))))
((or (memq this-command eshell-smart-display-navigate-list)
(and (eq this-command 'eshell-send-input)
(not (and (>= (point) eshell-last-input-start)
(< (point) eshell-last-input-end)))))
(setq clear t)
(goto-char (point-max)))))
(if clear
(remove-hook 'pre-command-hook 'eshell-smart-display-move t))))