home *** CD-ROM | disk | FTP | other *** search
- Advantages of Gosling Emacs:
-
- 1. The program itself is much smaller.
- GNU Emacs uses about 250k more pure storage.
- As a result, Gosling Emacs can run on machines
- that cannot run GNU Emacs. There is not much difference
- in the amount of impure storage in the two programs.
-
- 2. In some versions there is support for other forks to
- establish communications channels to Emacs (using sockets?).
-
- 3. There is a direct interface to dbm (data bases).
-
-
- Advantages of GNU Emacs:
-
- * True Lisp, not Mocklisp.
-
- GNU Emacs's extension language has real symbols, lists
- and vectors. Many extensions are much simpler, and some
- become possible that were nearly impossible in Gosling Emacs.
- Many primitives can have cleaner interfaces, and some features
- need not be put in as special primitives because you can do
- them easily yourself.
-
- * But Mocklisp still works.
-
- An automatic conversion package plus a run-time library
- allows you to convert a Mocklisp library into a Lisp library.
-
- * Commands are better crafted.
-
- For example, nearly every editing function for which a
- numeric argument would make sense as a repeat count does
- accept a repeat count, and does handle a negative argument
- in the way you would expect.
-
- * The manual is clearer.
-
- Everyone tells me it is a very good manual.
-
- * Better on-line documentation.
-
- Both functions and variables have documentation strings that
- describe exactly how to use them.
-
- * C mode is smart.
-
- It really knows how to indent each line correctly,
- for most popular indentation styles. (Some variables
- control which style is used.)
-
- * Compatible with PDP-10 Emacs, Multics Emacs and Zmacs.
-
- The commands in GNU Emacs are nearly the same as in the
- original Emacs and the other Emacses which imitated it.
- (A few have been changed to fit the Unix environment better.)
-
- * Support for Gosling's Emacs commands.
-
- M-x set-gosmacs-bindings rebinds many editing commands for
- compatibility with Gosling's Emacs.
- M-x set-gnu-bindings reverses the change.
-
- * Side-by-side windows.
-
- You can split a GNU Emacs window either horizontally or
- vertically.
-
- * Redisplay is faster.
-
- GNU Emacs sends about the same stuff to the terminal that
- Gosling's does, but GNU Emacs uses much less CPU time to
- decide what to do.
-
- * Entirely termcap-driven.
-
- GNU Emacs has nearly no special code for any terminal type. Various
- new termcap strings make it possible to handle all terminals nearly as
- fast as they could be handled by special-case code.
-
- * Display-hiding features.
-
- For example, Outline Mode makes it possible for you to edit
- an outline, making entire sub-branches of the outline visible
- or invisible when you wish.
-
- * You can interrupt with Control-G.
-
- Even a looping Lisp program can be stopped this way.
- And even a loop in C code does not stop you from killing
- Emacs and getting back to your shell.
-
- * Per-buffer Undo.
-
- You can undo the last several changes, in each buffer
- independently.
-
- * The editor code itself is clean.
-
- Many people have remarked on how much they enjoy reading
- the code for GNU Emacs.
-
-
- One other note: The program etc/cvtmail that comes with GNU Emacs can
- be used to convert a mail directory for Gosling Emacs's Rmail into a
- Unix mail file that you could read into GNU Emacs's Rmail.
-
-
- A detailed comparison by Rodney Zykowitz (rtgvax!ramin@eddie.mit.edu)
-
- Enclosed are two difference listings. The first one is a cross-reference
- by Key bindings. The second is by alphabetized function name.
- Only those functions normally bound to keys in a
- "standard" version are included. As far as I know it excludes
- bindings added here locally (but what do I know...)
-
- The Gosling's is version 2.02 and runs on VMS 4.2. The Gnu is
- version 16.56.1 running under Ultrix 1.1.
-
-
- And could someone send me some info on Gnu on VMS. I seem to have entirely
- missed that posting. If it is hopeless, I just might sit down and write
- a Gnu emulator for Unipress and a Unipress emulator for Gnu... But the
- thought of that already makes me wanna....
-
-
- ramin...
- Standard disclaimer excluded for humanitarian purposes.
-
-
-
- Command Binding Cross-references. By key code:
-
- VMS (Unipress) GNU Emacs
- Key Binding Binding
- --- ------- ---------------
- ^@ set-mark set-mark-command
- ^A beginning-of-line beginning-of-line
- ^B backward-character backward-char
- ^C exit-emacs exit-recursive-edit
- ^D delete-next-character delete-char
- ^E end-of-line end-of-line
- ^F forward-character forward-char
- ^G illegal-operation
- ^H delete-previous-character help-command
- ^H-v describe-variable
- ^H-w where-is
- ^H-t help-with-tutorial
- ^H-s describe-syntax
- ^H-n view-emacs-news
- ^H-^N view-emacs-news
- ^H-m describe-mode
- ^H-l view-lossage
- ^H-i info
- ^H-f describe-function
- ^H-d describe-function
- ^H-k describe-key
- ^H-c describe-key-briefly
- ^H-b describe-bindings
- ^H-a command-apropos
- ^H-^D describe-distribution
- ^H-^C describe-copying
- ^H-? help-for-help
- ^H-^H help-for-help
- ^I self-insert indent-for-tab-command
- ^J newline-and-indent newline-and-indent
- ^K kill-to-end-of-line kill-line
- ^L redraw-display recenter
- ^M newline newline
- ^N next-line next-line
- ^O newline-and-backup open-line
- ^P previous-line previous-line
- ^Q quote-character quoted-insert
- ^R search-reverse isearch-backward
- ^S search-forward isearch-forward
- ^T transpose-characters transpose-chars
- ^U argument-prefix universal-argument
- ^V next-page scroll-up
- ^W delete-to-killbuffer kill-region
- ^X ^X-prefix Control-x-prefix
- ^X-^A add-mode-abbrev
- ^X-^B list-buffers list-buffers
- ^X-^C exit-emacs save-buffers-kill-emacs
- ^X-^D describe-word-in-buffer list-directory
- ^X-^E compile-it eval-last-sexp
- ^X-^F write-pause-or-exit find-file
- ^X-^H inverse-add-mode-abbrev
- ^X-^I insert-file indent-rigidly
- ^X-^L downcase-region
- ^X-^M write-modified-files
- ^X-^N next-error set-goal-column
- ^X-^O use-old-buffer delete-blank-linkes
- ^X-^P mark-page
- ^X-^Q toggle-read-only
- ^X-^R read-file find-file-read-only
- ^X-^S write-current-file save-buffer
- ^X-^T transpose-lines
- ^X-^U new-undo upcase-region
- ^X-^V visit-file find-alternate-file
- ^X-^W write-named-file write-file
- ^X-^X exchange-dot-and-mark exchange-dot-and-mark
- ^X-^Z shrink-window suspend-emacs
- ^X-ESC repeat-complex-command
- ^X-! execute-monitor-command
- ^X-$ set-selective-display
- ^X-( start-remembering start-kbd-macro
- ^X-) stop-remembering end-kbd-macro
- ^X-+ add-global-abbrev
- ^X-- inverse-add-global-abbrev
- ^X-. set-fill-prefix
- ^X-/ dot-to-register
- ^X-0 delete-window
- ^X-1 delete-other-windows delete-other-windows
- ^X-2 split-current-window split-window-vertically
- ^X-4 ctl-x-4-prefix
- ^X-4-^F find-file-other-window
- ^X-4-. find-tag-other-window
- ^X-4-b pop-to-buffer
- ^X-4-d dired-other-window
- ^X-4-f find-file-other-window
- ^X-4-m mail-other-window
- ^X-5 split-window-horizontally
- ^X-; set-comment-column
- ^X-< scroll-left
- ^X-= what-cursor-position
- ^X-> scroll-right
- ^X-[ backward-page
- ^X-] forward-page
- ^X-^ enlarge-window
- ^X-` next-error
- ^X-a append-to-buffer
- ^X-b switch-to-buffer switch-to-buffer
- ^X-d delete-window dired
- ^X-e execute-keyboard-macro call-last-kbd-macro
- ^X-f set-fill-column
- ^X-g insert-register
- ^X-h mark-whole-buffer
- ^X-i insert-file
- ^X-j register-to-dot
- ^X-k kill-buffer
- ^X-l count-lines-page
- ^X-m mail
- ^X-n next-window narrow-to-region
- ^X-o other-window
- ^X-p previous-window narrow-to-page
- ^X-q kbd-macro-query
- ^X-r copy-rectangle-to-register
- ^X-s save-some-buffers
- ^X-u advertised-undo
- ^X-w widen
- ^X-x copy-to-register
- ^X-z enlarge-window
- ^X-{ shrink-window-horizontally
- ^X-} enlarge-window-horizontally
- ^X-DEL backward-kill-sentence
- ^Y yank-from-killbuffer yank
- ^Z scroll-one-line-up suspend-emacs
- ESC ESC-prefix
- ESC-^@ mark-sexp
- ESC-^A beginning-of-defun
- ESC-^B backward-sexp
- ESC-^C exit-emacs exit-recursive-edit
- ESC-^D down-list
- ESC-^E end-of-defun
- ESC-^F forward-sexp
- ESC-^H mark-defun
- ESC-^J indent-new-comment-line
- ESC-^K kill-sexp
- ESC-^N forward-list
- ESC-^O split-line
- ESC-^P backward-list
- ESC-^S isearch-forward-regexp
- ESC-^T transpose-sexps
- ESC-^U backward-up-list
- ESC-^V page-next-window scroll-other-window
- ESC-^W delete-region-to-buffer append-next-kill
- ESC-^Y yank-buffer
- ESC-ESC execute-mlisp-line eval-expression
- ESC-^^ case-region-invert
- ESC-^\ indent-region
- ESC-<SP> just-one-space
- ESC-! line-to-top-of-window shell-command
- ESC-$ spell-word
- ESC-% query-replace
- ESC-' abbrev-prefix-mark
- ESC-( backward-paragraph insert-parentheses
- ESC-) forward-paragraph move-past-close-and-reindent
- ESC-, beginning-of-window tags-loop-continue
- ESC-- meta-minus negative-argument
- ESC-. end-of-window find-tag
- ESC-0..ESC-9 meta-digit digit-argument
- ESC-; indent-for-comment
- ESC-< beginning-of-file beginning-of-buffer
- ESC-= count-lines-region
- ESC-> end-of-file end-of-buffer
- ESC-@ mark-word
- ESC-[ backward-paragraph
- ESC-\ delete-horizontal-space
- ESC-] forward-paragraph
- ESC-? apropos
- ESC-^ case-word-invert delete-indentation
- ESC-a backward-sentence backward-sentence
- ESC-b backward-word backward-word
- ESC-d delete-next-word kill-word
- ESC-e forward-sentence forward-sentence
- ESC-f forward-word forward-word
- ESC-g fill-region
- ESC-h delete-previous-word mark-paragraph
- ESC-j indent-C-procedure indent-new-comment-line
- ESC-k kill-sentence
- ESC-l case-word-lower downcase-word
- ESC-q query-replace-string fill-paragraph
- ESC-r replace-string move-to-window-line
- ESC-t transpose-words
- ESC-u case-word-upper upcase-word
- ESC-v previous-page scroll-down
- ESC-w copy-region-as-kill
- ESC-x execute-extended-command execute-extended-command
- ESC-y yank-pop
- ESC-z scroll-one-line-down zap-to-char
- ESC-| shell-command-on-region
- ESC-~ not-modified
- ESC-DEL backward-kill-word
- ^_ return-to-monitor
- .., self-insert
- - minus
- .../ self-insert
- 0..9 digit
- :..~ self-insert
- ^? delete-previous-character
-
-
-
-
- Command Binding Cross-references. By name:
-
- Command VMS (Unipress) Key GNU Key
- ----------------------------- --------------------- ------------
- abbrev-prefix-mark ESC-'
- add-global-abbrev ^X-+
- add-mode-abbrev ^X-^A
- advertised-undo ^X-u
- append-next-kill ESC-^W
- append-to-buffer ^X-a
- apropos ESC-?
- argument-prefix ^U
- backward-char ^B
- backward-character ^B
- backward-kill-sentence ^X-DEL
- backward-kill-word ESC-DEL
- backward-list ESC-^P
- backward-page ^X-[
- backward-paragraph ESC-(
- backward-paragraph ESC-[
- backward-sentence ESC-a
- backward-sentence ESC-a
- backward-sexp ESC-^B
- backward-up-list ESC-^U
- backward-word ESC-b
- backward-word ESC-b
- beginning-of-buffer ESC-<
- beginning-of-defun ESC-^A
- beginning-of-file ESC-<
- beginning-of-line ^A
- beginning-of-line ^A
- beginning-of-window ESC-,
- call-last-kbd-macro ^X-e
- case-region-invert ESC-^^
- case-word-invert ESC-^
- case-word-lower ESC-l
- case-word-upper ESC-u
- command-apropos ^H-a
- compile-it ^X-^E
- control-x-prefix ^X
- control-x-prefix ^X
- copy-rectangle-to-register ^X-r
- copy-region-as-kill ESC-w
- copy-to-register ^X-x
- count-lines-page ^X-l
- count-lines-region ESC-=
- ctl-x-4-prefix ^X-4
- delete-blank-linkes ^X-^O
- delete-char ^D
- delete-horizontal-space ESC-\
- delete-indentation ESC-^
- delete-next-character ^D
- delete-next-word ESC-d
- delete-other-windows ^X-1
- delete-other-windows ^X-1
- delete-previous-character ^H ^?
- delete-previous-character ^?
- delete-previous-word ESC-h
- delete-region-to-buffer ESC-^W
- delete-to-killbuffer ^W
- delete-window ^X-0
- delete-window ^X-d
- describe-bindings ^H-b
- describe-copying ^H-^C
- describe-distribution ^H-^D
- describe-function ^H-f
- describe-function ^H-d
- describe-key ^H-k
- describe-key-briefly ^H-c
- describe-mode ^H-m
- describe-syntax ^H-s
- describe-variable ^H-v
- describe-word-in-buffer ^X-^D
- digit 0..9
- digit 0..9
- digit-argument ESC-0..ESC-9
- dired ^X-d
- dired-other-window ^X-4-d
- dot-to-register ^X-/
- down-list ESC-^D
- downcase-region ^X-^L
- downcase-word ESC-l
- end-kbd-macro ^X-)
- end-of-buffer ESC->
- end-of-defun ESC-^E
- end-of-file ESC->
- end-of-line ^E
- end-of-line ^E
- end-of-window ESC-.
- enlarge-window ^X-^
- enlarge-window ^X-z
- enlarge-window-horizontally ^X-}
- esc-prefix ESC
- esc-prefix ESC
- eval-expression ESC-ESC
- eval-last-sexp ^X-^E
- exchange-dot-and-mark ^X-^X
- exchange-dot-and-mark ^X-^X
- execute-extended-command ESC-x
- execute-extended-command ESC-x
- execute-keyboard-macro ^X-e
- execute-mlisp-line ESC-ESC
- execute-monitor-command ^X-!
- exit-emacs ^C
- exit-emacs ^X-^C
- exit-emacs ESC-^C
- exit-recursive-edit ^C
- exit-recursive-edit ESC-^C
- fill-paragraph ESC-q
- fill-region ESC-g
- find-alternate-file ^X-^V
- find-file ^X-^F
- find-file-other-window ^X-4-^F
- find-file-other-window ^X-4-f
- find-file-read-only ^X-^R
- find-tag ESC-.
- find-tag-other-window ^X-4-.
- forward-char ^F
- forward-character ^F
- forward-list ESC-^N
- forward-page ^X-]
- forward-paragraph ESC-)
- forward-paragraph ESC-]
- forward-sentence ESC-e
- forward-sentence ESC-e
- forward-sexp ESC-^F
- forward-word ESC-f
- forward-word ESC-f
- help-command ^H
- help-for-help ^H-?
- help-for-help ^H-^H
- help-with-tutorial ^H-t
- illegal-operation ^G
- indent-C-procedure ESC-j
- indent-for-comment ESC-;
- indent-for-tab-command ^I
- indent-new-comment-line ESC-^J
- indent-new-comment-line ESC-j
- indent-region ESC-^\
- indent-rigidly ^X-^I
- info ^H-i
- insert-file ^X-^I
- insert-file ^X-i
- insert-parentheses ESC-(
- insert-register ^X-g
- inverse-add-global-abbrev ^X--
- inverse-add-mode-abbrev ^X-^H
- isearch-backward ^R
- isearch-forward ^S
- isearch-forward-regexp ESC-^S
- just-one-space ESC-<SP>
- kbd-macro-query ^X-q
- kill-buffer ^X-k
- kill-line ^K
- kill-region ^W
- kill-sentence ESC-k
- kill-sexp ESC-^K
- kill-to-end-of-line ^K
- kill-word ESC-d
- line-to-top-of-window ESC-!
- list-buffers ^X-^B
- list-buffers ^X-^B
- list-directory ^X-^D
- mail ^X-m
- mail-other-window ^X-4-m
- mark-defun ^X-^H
- mark-page ^X-^P
- mark-paragraph ESC-h
- mark-sexp ESC-^@
- mark-whole-buffer ^X-h
- mark-word ESC-@
- meta-digit ESC-0..ESC-9
- meta-minus ESC--
- minus -
- minus -
- move-past-close-and-reindent ESC-)
- move-to-window-line ESC-r
- narrow-to-page ^X-p
- narrow-to-region ^X-n
- negative-argument ESC--
- new-undo ^X-^U
- newline ^M
- newline ^M
- newline-and-backup ^O
- newline-and-indent ^J
- newline-and-indent ^J
- next-error ^X-^N
- next-error ^X-`
- next-line ^N
- next-line ^N
- next-page ^V
- next-window ^X-n
- not-modified ESC-~
- open-line ^O
- other-window ^X-o
- page-next-window ESC-^V
- pop-to-buffer ^X-4-b
- previous-line ^P
- previous-line ^P
- previous-page ESC-v
- previous-window ^X-p
- query-replace ESC-%
- query-replace-string ESC-q
- quote-character ^Q
- quoted-insert ^Q
- read-file ^X-^R
- recenter ^L
- redraw-display ^L
- register-to-dot ^X-j
- repeat-complex-command ^X-ESC
- replace-string ESC-r
- return-to-monitor ^_(CTL-/)
- save-buffer ^X-^S
- save-buffers-kill-emacs ^X-^C
- save-some-buffers ^X-s
- scroll-down ESC-v
- scroll-left ^X-<
- scroll-one-line-down ESC-z
- scroll-one-line-up ^Z
- scroll-other-window ESC-^V
- scroll-right ^X->
- scroll-up ^V
- search-forward ^S
- search-reverse ^R
- self-insert ^I
- self-insert <SP>..,
- self-insert .../
- self-insert :..~
- set-comment-column ^X-;
- set-fill-column ^X-f
- set-fill-prefix ^X-.
- set-goal-column ^X-^N
- set-mark ^@
- set-mark-command ^@
- set-selective-display ^X-$
- shell-command ESC-!
- shell-command-on-region ESC-|
- shrink-window ^X-^Z
- shrink-window-horizontally ^X-{
- spell-word ESC-$
- split-current-window ^X-2
- split-line ESC-^O
- split-window-horizontally ^X-5
- split-window-vertically ^X-2
- start-kbd-macro ESC-(
- start-remembering ^X-(
- stop-remembering ^X-)
- suspend-emacs ^X-^Z
- suspend-emacs ^Z
- switch-to-buffer ^X-b
- switch-to-buffer ^X-b
- tags-loop-continue ESC-,
- toggle-read-only ^X-^Q
- transpose-characters ^T
- transpose-chars ^T
- transpose-lines ^X-^T
- transpose-sexps ESC-^T
- transpose-words ESC-t
- universal-argument ^U
- upcase-region ^X-^U
- upcase-word ESC-u
- use-old-buffer ^X-^O
- view-emacs-news ^H-^N
- view-emacs-news ^H-n
- view-lossage ^H-l
- visit-file ^X-^V
- what-cursor-position ^X-=
- where-is ^H-w
- widen ^X-w
- write-current-file ^X-^S
- write-file ^X-^W
- write-modified-files ^X-^M
- write-named-file ^X-^W
- write-pause-or-exit ^X-^F
- yank ^Y
- yank-buffer ESC-^Y
- yank-from-killbuffer ^Y
- yank-pop ESC-y
- zap-to-char ESC-z
-