home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frozen Fish 1: Amiga
/
FrozenFish-Apr94.iso
/
bbs
/
gnu
/
emacs-18.59-bin.lha
/
lib
/
emacs
/
18.59
/
etc
/
GOSDIFF
< prev
next >
Wrap
Text File
|
1986-11-10
|
24KB
|
615 lines
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