There is not yet an implementation of Emacs in CommonLisp.
A lot of people would like to see one, however.
It is often talked about on news:comp.lang.lisp. The [http://www.mikemac.com/mikemac/McCLIM/ McCLIM] source includes the beginning of an Emacs in CL, but it's not yet usable.

The usable editor built in Common Lisp, while not an Emacs port, is [https://lem-project.github.io/ Lem].

It is also worth mentioning [https://lisperator.net/ymacs/ Ymacs], an Emacsen editor, very close to Emacs in spirit and features, built in JavaScript to run in the browser. The [https://lisperator.net/slip/ SLip] Lisp language, built-in JavaScript too, is close to Common Lisp (but it doesn't pass the ANSI test suite at the time of writing).

There's also a page over on the Common Lisp Wiki on the subject.
CLiki:CL-Emacs

== Old projects ==

Hmm, what about HemLock, the editor distributed with CMUCL? It is
written in CommonLisp, and in the tradition of the [[WikiPedia:Lisp machine]] editor
[[ZWEI]] and the ITS implementation, TecoEmacs. Includes a news and email
client, can display to tty or X11. See
http://www.cons.org/cmucl/hemlock/. -- EricMarsden

Gilbert Baumann "ported" Hemlock to standard Common Lisp.  The
resulting project is called [http://common-lisp.net/project/phemlock Phemlock], for Portable Hemlock.

There is a lengthy discussion on news:comp.lang.lisp in a thread entitled [https://groups.google.com/forum/#!topic/comp.lang.lisp/Dq52-8B3Vk4 Re: ZWEI (Re: emacs rules and vi sucks)].

Later, [[Climacs]] was created. Climacs is built on DREI, which is a combination meant to
subsume both (Portable) Hemlock and Goatee.

See also: [[LiCE]]

There is also FRED (Fred Resembles Emacs Deliberately), which is an emacs implemented in CommonLisp.  It comes with [ftp://clozure.com/pub/MCL/ Macintosh Common Lisp], which means it is limited to running on Mac OS 9 or X on PPC machines.

== Current projects ==

Last but not least, [https://lem-project.github.io/ Lem] is an editor built in Common Lisp that, while not Emacs, is heavily inspired by it. It borrows its system of buffers, major and minor modes, etc. Lem works out of the box for Common Lisp development and other languages: Python, Rust, Go, Scala, Scheme, Nim, C, Elixir, Erlang, SQL… also for HTML, JSON… and with a directory mode (very much like Dired). Lem has a built-in LSP client.

In March, 2024, Lem was added [https://lisp-journey.gitlab.io/blog/oh-no-i-started-a-magit-like-plugin-for-the-lem-editor/ the first version] of a Magit-like VCS package, for Git and, to a lower extent, Fossil and Mercurial. It allows to: see the project status, the latest commits, stage or unstage changes (files and diff hunks), start an interactive rebase…

Lem works on the terminal and with a GUI.


== Discussion ==

Having used MCL and FRED I have to say FRED really stands for FRED Requires Extensive Debugging. The keybindings are also garbage and its attempt to be compatible with mac bindings just makes things worse. --sabetts

----
CategoryExtensionLanguage

