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 allSoftware 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.
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.
Magit
A complete text-based Git interface that runs inside GNU Emacs.
Denote
An Emacs note-taking package that organises plain-text notes through a predictable, descriptive file naming scheme.
Neovide
A cross-platform graphical interface for Neovim that adds smooth animations and other visual improvements.