/Emacs-Elisp-Programming

Tutorial about programming Elisp and Emacs text editor customization.

Primary LanguageCSSThe UnlicenseUnlicense

Emacs In a Box

Emacs - Programming and Customization

Overview

Repository Link

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.

Note:

  • 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)

Contents

Elisp programming guide and documentation by examples.

Elisp code examples grouped by category.

Emacs standard keybindings and useful commands.

Emacs key bindings and commands for Elisp (Emacs’ lisp) development.

Emacs settings and customization.

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.

Programming language-specific configurations.

Emacs settings for Microsoft Windows OS.

Emacs utilities and goodness like Calculator, Magit, Helm and so on.

Emacs Resources.

Download this content

You can download all the pages of this repository with following commands.

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