Add option to eshell/clear to clear scrollback.

* lisp/eshell/esh-mode.el (eshell/clear-scrollback): New function.
(eshell/clear): Add an optional SCROLLBACK argument. If non-nil,
scrollback contents are cleared.

* etc/NEWS: Describe change.

* doc/misc/eshell.texi: Add entry for `clear'.
This commit is contained in:
Vibhav Pant 2015-04-19 23:26:09 +05:30
parent e5bd39b2b4
commit d7f1b8af02
3 changed files with 20 additions and 5 deletions

View file

@ -298,6 +298,12 @@ with no arguments, prints the current paths in this variable.
Define an alias (@pxref{Aliases}). This does not add it to the aliases
file.
@item clear
@cmindex clear
Scrolls the contents of the eshell window out of sight, leaving a blank window.
If provided with an optional non-nil argument, the scrollback contents are
cleared instead.
@item date
@cmindex date
Similar to, but slightly different from, the GNU Coreutils

View file

@ -610,6 +610,7 @@ command line's password prompt.
** Eshell
*** The new built-in command `clear' can scroll window contents out of sight.
If provided with an optional non-nil argument, the scrollback contents will be cleared.
** Browse-url

View file

@ -871,12 +871,20 @@ When run interactively, widen the buffer first."
(goto-char (point-max))
(recenter -1))
(defun eshell/clear ()
"Scroll contents of eshell window out of sight, leaving a blank window."
(defun eshell/clear (&optional scrollback)
"Scroll contents of eshell window out of sight, leaving a blank window.
If SCROLLBACK is non-nil, clear the scollback contents."
(interactive)
(let ((number-newlines (count-lines (window-start) (point))))
(insert (make-string number-newlines ?\n)))
(eshell-send-input))
(if scrollback
(eshell/clear-scrollback)
(let ((number-newlines (count-lines (window-start) (point))))
(insert (make-string number-newlines ?\n))
(eshell-send-input))))
(defun eshell/clear-scrollback ()
"Clear the scrollback content of the eshell window."
(let ((inhibit-read-only t))
(erase-buffer)))
(defun eshell-get-old-input (&optional use-current-region)
"Return the command input on the current line."