Linedit

latest version 0.17.0

Linedit is a readline-style library written in Common Lisp that provides customizable line-editing features, licensed under a MIT-style license.

Linedit uses UFFI for foreign bindings, so it is a least theoretically portable, though REPL-wrapping is currently SBCL specific.

Features

Installation

If you're not yet using Quicklisp, you should be! ...but if you need the tarball, latests release of Linedit can manually be downloaded from here: linedit_latest.tar.gz .

The bleeding edge is available from our Git repo:

git clone git://common-lisp.net/projects/linedit/linedit.git

Installing Linedit at the REPL from .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)))

Additionally, to prevent Linedit from causing trouble with Slime, in your .emacs:

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

Terminfo note

Linedit uses terminfo.lisp by Paul Foley, which is currently kept mirrored in the Linedit CVS.

The terminfo interface is distributed available as a separate asdf-installable bundle: Terminfo.

Contact

Questions, feature requests, and bug-reports are welcome on linedit-devel.


Valid XHTML 1.1! Valid CSS!