help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: About the history of Emacs


From: Pascal J. Bourguignon
Subject: Re: About the history of Emacs
Date: Fri, 14 Dec 2012 07:58:44 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2 (gnu/linux)

Xue Fuqiao <xfq.free@gmail.com> writes:

> I have 2 questions about the history of Emacs:
>
> 1. What does `Emacs' stand for?
> In these pages:
>    http://www.finseth.com/emacs.html
>    http://www.gnu.org/software/emacs/emacs-faq.html#Origin-of-the-term-Emacs
>    http://www.multicians.org/mepap.html#secii
>    http://www.codeartnow.com/hacker-art-1/macsimizing-teco
> Emacs stands for `Editor MACroS', but in these pages:
>    http://www.emacswiki.org/emacs/EmacsHistory
>    http://www.lysator.liu.se/history/garb/txt/87-1-emacs.txt
> Emacs stands for `Editing MACroS'.

Both.  

They are macros written for an editor (editor macros), and they are used
in general to edit text (editing macros).

Notice however that emacs is a generic term.


Here is an emacs macro (TECO emacs):
http://pdp-10.trailing-edge.com/mit_emacs_170_teco_1220/index.html

!& Abstract Macro:! !S Abstract a single macro.
Inserts the full name of the specified macro,
and all of its documentation, and then a blank line.
Give the macro name string pointer as a numeric argument.!
    M(M.M&_MACRO_NAME)[0            !* Get full name of macro in q0!
    g0 .i 15.i 12.i                 !* Put it, and CRLF, in buffer.!
    .[1 g(m.m~DOC~_0)       !* Insert its documentation on the buffer.!
    0@f"n i                         !* Put in a CRLF at end if there is none.!
'
    fsz-.f[vz
      q1j s_ q1,.k                  !* Flush the macro class.!
      < 9i l .-z;>                  !* Insert a tab before each line of doc.!
      q1j < :s; -d>                !* Delete all the ^\'s from the doc 
strings.!
      zj f]vz
    



Here is another emacs macro (GNU emacs):

(defun insert-string (&rest args)
  "Mocklisp-compatibility insert function.
Like the function `insert' except that any argument that is a number
is converted into a string by expressing it in decimal."
  (dolist (el args)
    (insert (if (integerp el) (number-to-string el) el))))


Here is another emacs macro (Hemlock):
(defcommand "Auto Fill Linefeed" (p)
  "Does an immediate CRLF inserting Fill Prefix if it exists."
  "Does an immediate CRLF inserting Fill Prefix if it exists."
  (let ((point (current-point)))
    (check-fill-prefix (value fill-prefix) (value fill-column) point)
    (%auto-fill-space point nil)
    ;; The remainder of this function should go away when
    ;; transparent key bindings are per binding instead of
    ;; per mode.
    (multiple-value-bind (command t-bindings)
(get-command #k"Linefeed" :current)
      (declare (ignore command)) ;command is this one, so don't invoke it
      (dolist (c t-bindings) (invoke-command c p)))
    (indent-new-line-command nil)))



> 2. About the first Emacs.
> In these pages:
>    http://www.gnu.org/press/2001-10-22-Emacs.html
>    http://shop.fsf.org/product/gnu-emacs-manual-16th-edition/
> The first Emacs was written by RMS in 1975, but in these pages:
>    http://www.emacswiki.org/emacs/EmacsHistory
>    http://www.gnu.org/software/emacs/emacs-faq.html#Origin-of-the-term-Emacs
>    http://www.jwz.org/doc/emacs-timeline.html
> The first Emacs was written in 1976.
>
> Does somebody know the `real' history?

RMS.  You can take what's written by RMS as authoritative.
See the link above.

-- 
__Pascal Bourguignon__                     http://www.informatimago.com/
A bad day in () is better than a good day in {}.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]