EMACS
EMACS is called the programmer's editor. Most of the GNU Emacs text editor is written in the programming language called Emacs Lisp. The code written in this programming language is the software--the sets of instructions--that tell the computer what to do when you give it commands. Emacs is designed so that you can write new code in Emacs Lisp and easily install it as an extension to the editor. This is why Emacs is called the "extensible editor". Emacs is included in almost all the GNU/Linux distributions. 'xemacs' is the X-window version of emacs.
Here is a Turorial on EMACS.
If you are interested in programming in 'elisp' read Programming in Emacs Lisp. (Incomplete download).
Here is the emacs lisp reference manual.