I'm greatful to Juan of cl-buchberger, and Louis of emacs.ch and
everyone else for their direction and encouragement towards the
common lisp native linedit in-repl line editor, and the
super-massive development system that is gnu emacs.
Development not just being words in a text file, and putting
resources into the experience of hacking lisp itself as itself is
fundamental in all of the MIT-CADR lispm, interlisp medley, and
common lisp including McCLIM I am now working with.
With all that said, xterms and an rlwrapped repl or even just the
repl are a very good development environment.
In plan9 acme, the idiom is to create a dynamic experience using a
mouse to sweep out and drop code somewhere, or run it, or pass it
to different programs. This is more or less possible just using
xterms in obvious ways.
I feel like I've buried the lead: Somewhat inevitably, files of
code are edited in a specialised text editor of some kind. We have
to be able to selectively recompile files into one running lisp
image, without cold booting it. This is the important functionality
of common lisp's ASDF and its :package-inferred-system. When
extending or rewriting one file within a project, whether or not
it's normally loaded, this intelligently re/compiles that into the
current image:
(asdf:operate 'asdf:load-op
:project/path/to/file :force t :verbose t)
:verbose t prints lots of extra information as it runs
:force t triggers recompilation (without force, a package won't be
reloaded).
I use rlwrap for comfort, so C-a C-e C-w and so forth work, and I
am able to search line history using C-r which is pretty close to
autocomplete.
So if we swap between file editing and one continuously running
live repl, we have hot re/compilation of specific parts of a
project as we work with it. It's also possible to unload packages
and so forth.