This is the EmacsWiki elisp area where we collect EmacsLisp files. No login required, no version control required, no ftp required, no password required. It’s as simple as the wiki itself. That also means that anybody can place malicious code in these EmacsLisp files. If in doubt, don’t use them.


Links to EmacsLisp libraries hosted on the EmacsWiki come in two different forms.

Links to the plain text library look like Download:foo.el. To view the linked file just follow the link. After that you can use your browser’s save dialog to download the file.

Links that look like Lisp:foo.el take you to a wiki page which is an HTML file. Click on the Download link on that page to view or download the plain text file.

If you accidentally download and then try to load an HTML file in Emacs you will get an error like: “Loading library.el (source)… File mode specification error: (void-variable <!--)”.

Sometimes you will encounter links to libraries with neither the Lisp: nor Download: prefix. If they link to libraries on the Emacswiki they will never-the-less take you to either the plain text or html version of the library. Otherwise they link to files outside the Emacswiki in which case anything can happen.

Besides downloading individual libraries, you can also use Wget, Rsync or a version control system to download the files. See WikiDownload.

For help installing a library, see InstallingPackages.


Small files up to maybe 200k can be pasted into ordinary pages. Basic instructions follow but please also read and wherever possible follow the ElispAreaConventions.

First, create a page on the wiki explaining what the file does. See CreateNewPages for how to do this. On that page, create a link to the file itself using the Lisp prefix:





This kind of link makes it easier for visitors to download the file, and to find references to the file.

Now follow the link, edit the page, and paste the file. When pasting, make sure the first line on the page starts with three semicolons: ;;;.

When posting a link to the elisp file on other pages, a common practice is to also provide a link to the Wiki page(s) that describe the library, perhaps in parentheses. See TextFormattingRules for information about how to create link to wiki page.


     Lisp:color-moccur.el (OccurBuffer)


Lisp:color-moccur.el (OccurBuffer)

Uploading large files

Gzip files and upload them. Create a page to hold your file. Use the filename as pagename, eg. color-theme.el.gz. Edit the page, and click on the link below the save button that says to replace the text with a file.

Version Control

“Instead of hosting their projects in version control (say GitHub) they develop stuff locally, upload them to the wiki and say that this is the canonical way to obtain their software. Needless to say - this is a horrible, horrible practice.” – Die EmacsWiki, Die!, by BozhidarBatsov

Use Savannah, “the software forge for people committed to free software.”

Use Gists: “Gist is a simple way to share snippets and pastes with others. All gists are git repositories, so they are automatically versioned, forkable and usable as a git repository.”

…or use Fossil for all of those mini-projects and sync them via vc-fossil. Wiki, bug-tracker etc. included by default, easily clone- and forkable.

Code snippets

For a small set of functions or code snippets, just put them on the wiki pages directly, or add them to the ElispCookbook. If you do, make sure you use the <pre> and </pre> or the {{{ and }}} tags to protect the code from formatting.

Or use Gists: snippets of code hosted on github.

Or use Lisppaste:

<include lisppaste "http://paste.lisp.org/display/132682">