Clear Comint Buffers
comint
provides Emacs infrastructure for building command
interpreters. It’s backing a lot of popular shell/REPL modes - like eshell
,
inferior-lisp
, inf-ruby
, inf-clojure
, etc.
comint
provides a myriad of built-in commands, but somewhat surprisingly
it doesn’t feature a command to clear the contents of a comint
buffer.
Let’s write one such command ourselves!
While there are several way to tackle it, I feel this is the simplest
(and the one that makes the best use of comint
’s existing
functionality):
(defun comint-clear-buffer ()
(interactive)
(let ((comint-buffer-maximum-size 0))
(comint-truncate-buffer)))
;; let's bind the new command to a keycombo
(define-key comint-mode-map "\C-c\M-o" #'comint-clear-buffer)
Simple and elegant, right? One day it might even end up being part of comint
itself.