/lem

Common Lisp editor/IDE with high expansibility

Primary LanguageCommon LispMIT LicenseMIT

Lem is the editor/IDE well-tuned for Common Lisp.

Build Status Backers on Open Collective Sponsors on Open Collective

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.

Screenshot

Terminal

Requirement

Platform

Play with Lem in the Docker

You can try Lem by running it in a docker container:

docker run --rm -ti -v `pwd`:/app 40ants/lem:latest

Installation

Please install roswell at first.

Roswell Installation Guide

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

Usage

$ lem <filename.lisp>

You can watch the screencast on Youtube.

Screencast

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!

Electron version (Experiment)

Electron version is in the experimental stage.

If you try, please follow below steps.

$ node -v  # check if your nodejs is 8.9.3LTS+.
v8.9.3
$ npm -v
5.5.1
$ npm install -g cxxxr/lem   # install lem-electron
$ lem-electron               # Electron version will start

Electron

Lem on platforms without SBCL thread support (e.g. raspberry pi3)

If installation fails due to bordeaux-threads, there is no thread provided by SBCL on your PC.
You need to use Clozure Common Lisp (CCL) instead of SBCL.

$ ros install ccl-bin
$ ros use ccl-bin
$ ros install cxxxr/lem

And also need to specify frontend to ncurses-ccl. You can launch lem as follows:

$ lem --frontend ncurses-ccl

How to develop lisp

See https://github.com/lem-project/lem/wiki/Lisp-Mode

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 this Gitter chat.

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]

License

MIT