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.