Linedit
Linedit is a portable line-editing console library for Common Lisp.

Successor to cl-readline.

More information on Linedit homepage.

New in release 0.16:

  • Should work on Lispworks and OpenMCL/CCL.

Bug-reports appreciated. Patches appreciated even more.

ASDF-install package (obsolete) http://common-lisp.net/project/linedit/files/linedit_latest.tar.gz

Installing Linedit as REPL for SBCL without disturbing ILISP or SLIME requires some tweaking:

In your .sbclrc:

;;; Check for --no-linedit command-line option. (if (member "--no-linedit" sb-ext:*posix-argv* :test 'equal) (setf sb-ext:*posix-argv* (remove "--no-linedit" sb-ext:*posix-argv* :test 'equal)) (when (interactive-stream-p *terminal-io*) (require :sb-aclrepl) (require :linedit) (funcall (intern "INSTALL-REPL" :linedit) :wrap-current t)))

And then in your .emacs:

(setq inferior-lisp-program "sbcl --noinform --no-linedit")

You might also want to add :eof-quits t to the install-repl form.


Another way is instead to say in your .sbclrc

(when (and (interactive-stream-p *terminal-io*) (null (find-package 'swank))) (require :linedit) (funcall (intern "INSTALL-REPL" :linedit) :wrap-current t))

which doesn't require having a separate file for your ordinary initialization code. -- James A. Crippen

How do you make this second method work? I can't and don't see how since SBCL by necessity processes its initfiles before it gets around loading swank. -- Nikodemus Siivola