mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-16 17:24:23 +00:00
614 lines
23 KiB
Text
614 lines
23 KiB
Text
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
|