Lem is the editor/IDE well-tuned for Common Lisp.
After installing lem, you can start developing in Common Lisp at once.
You can skip over writing tidy settings or installing many plugins as you do on Emacs.
Lem supports other programming languages thanks to its built-in LSP client. You can choose between an Emacs and a Vim mode.
Other Lem features include:
- a project explorer tree view
- project-aware commands
- interactive grep and git interfaces
- multiple cursors
- tetris
- and moreโฆ
Download
Lem 2.1 was released!
See our Lem 2.1 realease to download binaries for Windows, MacOS and Linux.
On mac, you need to run xattr -d com.apple.quarantine /Applications/lem.app
.
See #635
If the installation fails
Please refer to the following issue #628
Screenshot
Requirement
- ncurses
- roswell (optional)
- SDL2 (optional)
Platform
- Linux
- MacOS
- Windows
Installation with roswell
Please install roswell at first.
After that, please follow the steps bellow.
1. install lem by roswell
$ ros follow-dependency=t install lem-project/lem
2. add the PATH in the initialization file(such as ~/.bashrc)
export PATH=$PATH:~/.roswell/bin
Updating
$ ros update lem
note: Perhaps this is not enough. If you get an error, try updating the submodule.
$ cd $(ros -e '(princ (ql:where-is-system :lem))')
$ git submodule update --init --recursive
$ ros follow-dependency=t install lem-project/lem
Usage
$ lem <filename.lisp>
You can watch the screencast on Youtube.
Installation with sbcl
Please clone lem to a location where the path to asdf is accessible.
$ mkdir $HOME/common-lisp
$ cd $HOME/common-lisp
$ git clone --recursive https://github.com/lem-project/lem.git
You can start "lem" using the following command.
$ sbcl
* (ql:quickload :lem-ncurses)
* (lem:lem)
You can create the executable file of lem using the following command.
$ sbcl --eval '(ql:quickload :lem-ncurses)' --load build.lisp
Configuration
Lem loads ~/.lem/init.lisp
when starting up.
You can see an example here
fukamachi also published his init files on GitHub. https://github.com/fukamachi/.lem
Extensions and modes
- Pareto - A mode, complement to the Paredit. Makes Lisp code editing even more efficient!
How to develop lisp
See https://lem-project.github.io/lem-page/usage/common_lisp/
How to hack on lem itself
See https://github.com/lem-project/lem/wiki/How-to-hack-on-lem-itself
If you have a questions, join the Discord.
How to contribute to lem
See https://lem-project.github.io/lem-page/development/how-to-contribute-to-lem/
Contributors
This project exists thanks to all the people who contribute. [Contribute].
Backers
Thank you to all our backers! ๐ [Become a backer]
Sponsors
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]