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
** 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
(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."