CSS Shell Emacs Lisp Batchfile Makefile Scala Other
Switch branches/tags
Nothing to show
Clone or download
caiorss Create section - Build automation tools and batch files.
Update Emacs on Windows showing how to use old batch files for build
automation and invoking compilation tools.
Latest commit 52d286a Mar 19, 2018
Failed to load latest commit information.
codes Create section - Build automation tools and batch files. Mar 19, 2018
files files/JEMACS_the_java_scheme_based_emacs-peter-bother.pdf Oct 26, 2015
images Add section Visual C++ MSVC Building Tools. Mar 7, 2018
theme Update style for better readability and browsing. Oct 24, 2017
.gitignore Update .gitignore. Oct 8, 2017
Bookmarks.org Fix Emacs bookmarks. Jan 21, 2017
Command_Line_and_Scripting.org Move section Command Line Options from Elisp_Programming.org to Comma… Dec 12, 2016
Customization.org Refactor customization. Dec 28, 2016
Elisp_Programming.org Create section - Build automation tools and batch files. Mar 19, 2018
Elisp_Snippets.org Move org-mode section from Elisp-snippets to org-mode file. Oct 8, 2017
Emacs_Key_Bindings_Elisp.org Add Edebug debugger key bindings to Emacs_Key_Bindings_Elisp.org. Nov 5, 2016
Emacs_On_Windows.org Create section - Build automation tools and batch files. Mar 19, 2018
Eshell.org Change org-mode settings. Nov 5, 2016
Keybindings.org Reformated table. Nov 12, 2016
LICENSE Initial commit Jun 26, 2015
Makefile Improve gh-pages layout. Dec 28, 2016
Org-Mode.org Create file Org-mode-recipes.org and add links to it. Oct 8, 2017
Org-mode-recipes.org Fix command spelling. Oct 8, 2017
Packages.org Merget Development_Environment.org with Packages.org. Jan 21, 2017
README.org Add runnable shell-script code block. Oct 8, 2017
Utilities.org Update Emacs utilities table. Add more system commands. Feb 17, 2017
build.el Add function package-requires to elisp build script. Oct 2, 2016
em.sh Added Emacs_Snippets.org, an Emacs cookbook showing how to tweak, hac… Aug 22, 2016


Emacs In a Box

Emacs - Elisp Programming and Customization


Emacs doesn’t need any presentation. Emacs is a software “Lisp Machine” that provides a programmable text editor, email reader, text web browser, image viwer, calculator, shell, games, easter-eggs and more. Emacs is programmed in Elisp, an Emacs own lisp dialect that is based on MacLisp, one of oldest lisp dialects, older than Common Lisp and Scheme, created in MIT. Emacs was written in 1976 by the legendary Richard Stallman. Despite many incompatibilities with Common Lisp it has many constructs similar to it and n excellent book about Common Lisp that is also useful to understand Elisp and Scheme is On Lisp - by Paul Graham.

Repository Link


  • It is a work in progress.
  • You can see this document inside Emacs since it was converted to org-mode, see the file README.org. It can also be exported to html, pdf, github markdown and so on.

Configuration File

The user configuration file, which is executed when Emacs starts, is stored in the directory ~/.emacs.d/init.el or ~/.emacs. The first one is better because it is in the same directory of all emacs configuration files.

The Emacs scratch buffer can be used to test new features and try Emacs codes along with IELM - Emacs Lisp interactive shell.

Emacs Features

  • Run in GUI or in terminal.
  • Programmable “text editor” (Lisp Machine)
  • Support to many programming languages
  • Can run shells and interpreters inside Emacs.
  • Highly customizable
  • Easy task automation
  • Package manager
  • Multiple OS support
  • Remote file editting through ssh. (Tramp mode)
  • Keyboard macros
  • Utilities
    • Calculator
    • Eshell
    • Tramp-mode - Edit remote files and edit as super user (sudo).
    • Shells
    • File manager (dired-mode)
    • Git interface (magit)


  • Increase Emacs API discoverability;
  • Empower Emacs users to create their own extensions and customization;
  • Provide self-contained working examples about Emacs API and Elisp programming.
  • Unleash all Emacs potentials.


Elisp Programing

Key bindings / shortcuts

Settings and Packages

Emacs Utilities


  • Eshell Eshell - Multi-platform unix shell written in Elisp highly integrated with Emacs and with several platform independent shell commands such as ls, pwd, cp, mv implemented in Elisp.
  • Bookmarks - Emacs bookmarks to Wikis, tutorials, videos, codes and etc.

Future Work

  • [ ] Comint Mode / interacting with REPLs and subprocesses
  • [ ] Network API - Interacting with servers.
  • [ ] Add cross references
  • [ ] Emacs Widget Interfaces and Emacs User Interfaces
  • [ ] Add more examples about org-mode API.
  • [ ] Add a better layout.

Downloading it

Download manually

Automated download

curl -L https://github.com/caiorss/Emacs-Elisp-Programming/archive/gh-pages.zip -o elisp.zip
unzip -e elisp.zip 
rm -rf elisp.zip
mv Emacs-Elisp-Programming-gh-pages Emacs-Elisp-Programming
firefox Emacs-Elisp-Programming/index.html &

View the extracted repository contents:

$ ls Emacs-Elisp-Programming/
images/                       Elisp_Snippets2.org            index.html
theme/                        Elisp_Snippets.html            Keybindings.html
Customization.html            Elisp_Snippets.org             Keybindings.org
Customization.org             Emacs_Key_Bindings_Elisp.html  README.org
Development_Environment.html  Emacs_Key_Bindings_Elisp.org   Resources.html
Development_Environment.org   Emacs_On_Windows.html          Resources.org
Elisp_Programming.html        Emacs_On_Windows.org           Utilities.html
Elisp_Programming.org         Eshell.html                    Utilities.org
Elisp_Snippets2.html          Eshell.org