Skip to content

Latest commit

 

History

History
83 lines (64 loc) · 3.19 KB

01-introduction.org

File metadata and controls

83 lines (64 loc) · 3.19 KB

Emacs for developers - Introduction

Emacs for developers - Introduction

Brief history

  • Originally developed by Richard Stallman and Guy Steele in MIT AI lab
  • First release in 1976
  • Inspired by TECO editor
  • Based on macros (Emacs stands for Editor MACroS)
  • Written in C and Emacs Lisp
  • Part of the GNU project (therefore, we should say “GNU Emacs”, not “Emacs”)
  • Despite its age, new users are still adopting Emacs as their development platform to this day!

How to get Emacs?

On every Linux distribution, packages are available. So run your favorite package manager to install it:

  • apt-get install emacs
  • yum install emacs

And if you have an exotic operating system, here are the specific distributions:

For Max OS X, the Yamamoto Mitsuharu port has some nice features an can be found via this github mirror.

But, in order to get the latest version, it’s highly recommended that you compile Emacs yourself: http://ftp.igh.cnrs.fr/pub/gnu/emacs/

More than an editor

  • More than an editor, it is a Lisp interpreter
  • Can run any type of program written in Lisp:
    • Email clients (like Gnus or mu4e)
    • Shell (like bash or eshell)
    • File and directory management (with Dired mode)
    • Agenda / Notes / TODO list / Project management (with the amazing OrgMode)
    • IRC / Twitter / Jabber / … clients
    • Games (like Tetris, Pong, Snake, 5x5, Dunnet, …)
    • Encrypt/decrypt files (like GPG files)
    • On-the-fly archives editing (thanks to archive-mode)
    • PDF / Image / (…) viewer
    • A powerful front end to R / S+ / SPSS / Stata (with EmacsSpeaksStatisics)
    • An editor for multi-modal REPL’s like IPython (with EmacsIPythonNotebook)
    • Music player (with emms, vlc, mplayer, …)
    • Music programming (with Overtone)
    • Video editing
    • And so on …
    • (and of course a document editor that can automatically generate this presentation)

It goes without saying that you can do all of this at the same time with only one Emacs instance.

The perfect development tool

  • As Emacs is a Lisp interpreter, it is extensible. Really, really extensible.
  • The (unofficial) goal of Emacs is to be hacked
  • Therefore, your goal is to hack Emacs to make it work exactly as you want
  • Already provides so many development tools (also extensible, of course)
    • Debuggers
    • Compilers
    • Syntax checkers
    • Documentations
    • Consoles
  • Also provides modes (extensions) for every programming language for
    • Syntax highlighting
    • Documentation search
    • Indentation
    • Source code browsing
    • Compilation commands
    • Specific behaviour