Lem

A general-purpose editor and IDE written in and extensible with Common Lisp, with Emacs and Vim keybindings.

These buttons open the developer's own site, repository or store listing in a new tab. wares.gg does not host downloads.

About Lem

Lem is a keyboard-driven editor and IDE written in Common Lisp that can be extended while it runs. People coming from Emacs or Vim will find familiar key bindings, and built-in LSP support covers many languages, from C and Go to Rust, Python and TypeScript.

It is well suited to Common Lisp work, with a REPL, interactive debugger and Paredit. Other features include a project tree, terminal integration, multiple cursors, interactive grep, a Git interface and keyboard macros. Since version 2.0 a GUI build with more than 180 colour themes is available.

Strengths

  • Extensible in Common Lisp while running
  • Emacs-like and Vim-like modes
  • Built-in LSP support for many languages
  • Full REPL and debugger for Lisp development

Limitations

  • Extending it requires learning Common Lisp
  • GUI is in transition from SDL2 to a webview version

Details

Pricing
FreeFree and open source.
License
Open source, license not stated
Developer
The Lem contributors
Platforms
macOS, Linux, Command line
How it runs
Downloadable app
Account
Not required
Works offline
Yes
Best suited for
Common Lisp developers and Emacs or Vim users who want a Lisp-extensible editor
Categories
Code editors
Last verified
Added
Provenance
Facts checked against the developer's own pages and store listings, 1 sources on file.

Alternatives to Lem

Compare all

Software that can replace Lem for an important use case, and what changes if you switch.

  • GNU Emacs

    An editor that is really a Lisp environment, extensible to the point where people run their email, calendar and shell inside it.

    GNU Emacs is extended in Emacs Lisp instead of Common Lisp, adds Org mode and decades of stable configurations, and has Windows builds, but its Lisp is single-threaded.

  • Doom Emacs

    An opinionated configuration framework that turns GNU Emacs into a fast, modular editing environment.

    Doom Emacs gives a modular, ready-made GNU Emacs setup with an active community, configured in Emacs Lisp, and requires Emacs to be installed first.

  • Spacemacs

    A community-driven Emacs configuration that combines Emacs with Vim-style editing and mnemonic key bindings.

    Spacemacs combines Emacs packages with Vim-style editing and mnemonic key bindings through curated layers, though its large configuration can slow startup.

  • Neovim

    A modern rewrite of Vim with a built-in language server client, Lua configuration and an embeddable API.

    Neovim offers Vim-style modal editing with a built-in LSP client and Lua configuration, and runs on Windows too, but has no Emacs-like mode or Lisp REPL.

  • Vim

    The editor that is already on every server, with a graphical build for Windows and a licence that asks you to donate to Ugandan children.

    Vim provides modal editing already installed on nearly every server and configured in Vimscript, but language server support needs plugins and there is no Lisp REPL.

  • Helix

    A modal terminal editor with language servers and multiple selections built in, and no plugins to install.

    Helix is a terminal modal editor with language servers built in and no configuration project, but it has no plugin system, so it cannot be extended like Lem.

Lem as an alternative

Listings that name Lem as an alternative.

  • Aquamacs

    An editor based on GNU Emacs and adapted to feel at home on macOS.

    FreeProprietarymacOS

    Lem is an open-source editor extensible in Common Lisp with Emacs-like and Vim-like modes on macOS and Linux, so Emacs Lisp packages and configuration do not carry over.

  • Kakoune

    A modal terminal code editor where multiple selections are the main way of editing.

    Lem offers Emacs-like and Vim-like modes with built-in LSP support and is extensible in Common Lisp, though its GUI is moving from SDL2 to a webview.

Similar software

Related functionality, not necessarily a direct replacement.

Report a wrong fact or a dead link on this listing