|
|
1.1 root 1: Advantages of Gosling Emacs:
2:
3: 1. The program itself is much smaller.
4: GNU Emacs uses about 250k more pure storage.
5: As a result, Gosling Emacs can run on machines
6: that cannot run GNU Emacs. There is not much difference
7: in the amount of impure storage in the two programs.
8:
9: 2. In some versions there is support for other forks to
10: establish communications channels to Emacs (using sockets?).
11:
12: 3. There is a direct interface to dbm (data bases).
13:
14:
15: Advantages of GNU Emacs:
16:
17: * True Lisp, not Mocklisp.
18:
19: GNU Emacs's extension language has real symbols, lists
20: and vectors. Many extensions are much simpler, and some
21: become possible that were nearly impossible in Gosling Emacs.
22: Many primitives can have cleaner interfaces, and some features
23: need not be put in as special primitives because you can do
24: them easily yourself.
25:
26: * But Mocklisp still works.
27:
28: An automatic conversion package plus a run-time library
29: allows you to convert a Mocklisp library into a Lisp library.
30:
31: * Commands are better crafted.
32:
33: For example, nearly every editing function for which a
34: numeric argument would make sense as a repeat count does
35: accept a repeat count, and does handle a negative argument
36: in the way you would expect.
37:
38: * The manual is clearer.
39:
40: Everyone tells me it is a very good manual.
41:
42: * Better on-line documentation.
43:
44: Both functions and variables have documentation strings that
45: describe exactly how to use them.
46:
47: * C mode is smart.
48:
49: It really knows how to indent each line correctly,
50: for most popular indentation styles. (Some variables
51: control which style is used.)
52:
53: * Compatible with PDP-10 Emacs, Multics Emacs and Zmacs.
54:
55: The commands in GNU Emacs are nearly the same as in the
56: original Emacs and the other Emacses which imitated it.
57: (A few have been changed to fit the Unix environment better.)
58:
59: * Side-by-side windows.
60:
61: You can split a GNU Emacs window either horizontally or
62: vertically.
63:
64: * Redisplay is faster.
65:
66: GNU Emacs sends about the same stuff to the terminal that
67: Gosling's does, but GNU Emacs uses much less CPU time to
68: decide what to do.
69:
70: * Entirely termcap-driven.
71:
72: GNU Emacs has nearly no special code for any terminal type. Various
73: new termcap strings make it possible to handle all terminals nearly as
74: fast as they could be handled by special-case code.
75:
76: * Display-hiding features.
77:
78: For example, Outline Mode makes it possible for you to edit
79: an outline, making entire sub-branches of the outline visible
80: or invisible when you wish.
81:
82: * You can interrupt with Control-G.
83:
84: Even a looping Lisp program can be stopped this way.
85: And even a loop in C code does not stop you from killing
86: Emacs and getting back to your shell.
87:
88: * Per-buffer Undo.
89:
90: You can undo the last several changes, in each buffer
91: independently.
92:
93: * The editor code itself is clean.
94:
95: Many people have remarked on how much they enjoy reading
96: the code for GNU Emacs.
97:
98:
99: One other note: The program etc/cvtmail that comes with GNU Emacs can
100: be used to convert a mail directory for Gosling Emacs's Rmail into a
101: Unix mail file that you could read into GNU Emacs's Rmail.
102:
103:
104: A detailed comparison by Rodney Zykowitz ([email protected])
105:
106: Enclosed are two difference listings. The first one is a cross-reference
107: by Key bindings. The second is by alphabetized function name.
108: Only those functions normally bound to keys in a
109: "standard" version are included. As far as I know it excludes
110: bindings added here locally (but what do I know...)
111:
112: The Gosling's is version 2.02 and runs on VMS 4.2. The Gnu is
113: version 16.56.1 running under Ultrix 1.1.
114:
115:
116: And could someone send me some info on Gnu on VMS. I seem to have entirely
117: missed that posting. If it is hopeless, I just might sit down and write
118: a Gnu emulator for Unipress and a Unipress emulator for Gnu... But the
119: thought of that already makes me wanna....
120:
121:
122: ramin...
123: Standard disclaimer excluded for humanitarian purposes.
124:
125:
126:
127: Command Binding Cross-references. By key code:
128:
129: VMS (Unipress) GNU Emacs
130: Key Binding Binding
131: --- ------- ---------------
132: ^@ set-mark set-mark-command
133: ^A beginning-of-line beginning-of-line
134: ^B backward-character backward-char
135: ^C exit-emacs exit-recursive-edit
136: ^D delete-next-character delete-char
137: ^E end-of-line end-of-line
138: ^F forward-character forward-char
139: ^G illegal-operation
140: ^H delete-previous-character help-command
141: ^H-v describe-variable
142: ^H-w where-is
143: ^H-t help-with-tutorial
144: ^H-s describe-syntax
145: ^H-n view-emacs-news
146: ^H-^N view-emacs-news
147: ^H-m describe-mode
148: ^H-l view-lossage
149: ^H-i info
150: ^H-f describe-function
151: ^H-d describe-function
152: ^H-k describe-key
153: ^H-c describe-key-briefly
154: ^H-b describe-bindings
155: ^H-a command-apropos
156: ^H-^D describe-distribution
157: ^H-^C describe-copying
158: ^H-? help-for-help
159: ^H-^H help-for-help
160: ^I self-insert indent-for-tab-command
161: ^J newline-and-indent newline-and-indent
162: ^K kill-to-end-of-line kill-line
163: ^L redraw-display recenter
164: ^M newline newline
165: ^N next-line next-line
166: ^O newline-and-backup open-line
167: ^P previous-line previous-line
168: ^Q quote-character quoted-insert
169: ^R search-reverse isearch-backward
170: ^S search-forward isearch-forward
171: ^T transpose-characters transpose-chars
172: ^U argument-prefix universal-argument
173: ^V next-page scroll-up
174: ^W delete-to-killbuffer kill-region
175: ^X ^X-prefix Control-x-prefix
176: ^X-^A add-mode-abbrev
177: ^X-^B list-buffers list-buffers
178: ^X-^C exit-emacs save-buffers-kill-emacs
179: ^X-^D describe-word-in-buffer list-directory
180: ^X-^E compile-it eval-last-sexp
181: ^X-^F write-pause-or-exit find-file
182: ^X-^H inverse-add-mode-abbrev
183: ^X-^I insert-file indent-rigidly
184: ^X-^L downcase-region
185: ^X-^M write-modified-files
186: ^X-^N next-error set-goal-column
187: ^X-^O use-old-buffer delete-blank-linkes
188: ^X-^P mark-page
189: ^X-^Q toggle-read-only
190: ^X-^R read-file find-file-read-only
191: ^X-^S write-current-file save-buffer
192: ^X-^T transpose-lines
193: ^X-^U new-undo upcase-region
194: ^X-^V visit-file find-alternate-file
195: ^X-^W write-named-file write-file
196: ^X-^X exchange-dot-and-mark exchange-dot-and-mark
197: ^X-^Z shrink-window suspend-emacs
198: ^X-ESC repeat-complex-command
199: ^X-! execute-monitor-command
200: ^X-$ set-selective-display
201: ^X-( start-remembering start-kbd-macro
202: ^X-) stop-remembering end-kbd-macro
203: ^X-+ add-global-abbrev
204: ^X-- inverse-add-global-abbrev
205: ^X-. set-fill-prefix
206: ^X-/ dot-to-register
207: ^X-0 delete-window
208: ^X-1 delete-other-windows delete-other-windows
209: ^X-2 split-current-window split-window-vertically
210: ^X-4 ctl-x-4-prefix
211: ^X-4-^F find-file-other-window
212: ^X-4-. find-tag-other-window
213: ^X-4-b pop-to-buffer
214: ^X-4-d dired-other-window
215: ^X-4-f find-file-other-window
216: ^X-4-m mail-other-window
217: ^X-5 split-window-horizontally
218: ^X-; set-comment-column
219: ^X-< scroll-left
220: ^X-= what-cursor-position
221: ^X-> scroll-right
222: ^X-[ backward-page
223: ^X-] forward-page
224: ^X-^ enlarge-window
225: ^X-` next-error
226: ^X-a append-to-buffer
227: ^X-b switch-to-buffer switch-to-buffer
228: ^X-d delete-window dired
229: ^X-e execute-keyboard-macro call-last-kbd-macro
230: ^X-f set-fill-column
231: ^X-g insert-register
232: ^X-h mark-whole-buffer
233: ^X-i insert-file
234: ^X-j register-to-dot
235: ^X-k kill-buffer
236: ^X-l count-lines-page
237: ^X-m mail
238: ^X-n next-window narrow-to-region
239: ^X-o other-window
240: ^X-p previous-window narrow-to-page
241: ^X-q kbd-macro-query
242: ^X-r copy-rectangle-to-register
243: ^X-s save-some-buffers
244: ^X-u advertised-undo
245: ^X-w widen
246: ^X-x copy-to-register
247: ^X-z enlarge-window
248: ^X-{ shrink-window-horizontally
249: ^X-} enlarge-window-horizontally
250: ^X-DEL backward-kill-sentence
251: ^Y yank-from-killbuffer yank
252: ^Z scroll-one-line-up suspend-emacs
253: ESC ESC-prefix
254: ESC-^@ mark-sexp
255: ESC-^A beginning-of-defun
256: ESC-^B backward-sexp
257: ESC-^C exit-emacs exit-recursive-edit
258: ESC-^D down-list
259: ESC-^E end-of-defun
260: ESC-^F forward-sexp
261: ESC-^H mark-defun
262: ESC-^J indent-new-comment-line
263: ESC-^K kill-sexp
264: ESC-^N forward-list
265: ESC-^O split-line
266: ESC-^P backward-list
267: ESC-^S isearch-forward-regexp
268: ESC-^T transpose-sexps
269: ESC-^U backward-up-list
270: ESC-^V page-next-window scroll-other-window
271: ESC-^W delete-region-to-buffer append-next-kill
272: ESC-^Y yank-buffer
273: ESC-ESC execute-mlisp-line eval-expression
274: ESC-^^ case-region-invert
275: ESC-^\ indent-region
276: ESC-<SP> just-one-space
277: ESC-! line-to-top-of-window shell-command
278: ESC-$ spell-word
279: ESC-% query-replace
280: ESC-' abbrev-prefix-mark
281: ESC-( backward-paragraph insert-parentheses
282: ESC-) forward-paragraph move-past-close-and-reindent
283: ESC-, beginning-of-window tags-loop-continue
284: ESC-- meta-minus negative-argument
285: ESC-. end-of-window find-tag
286: ESC-0..ESC-9 meta-digit digit-argument
287: ESC-; indent-for-comment
288: ESC-< beginning-of-file beginning-of-buffer
289: ESC-= count-lines-region
290: ESC-> end-of-file end-of-buffer
291: ESC-@ mark-word
292: ESC-[ backward-paragraph
293: ESC-\ delete-horizontal-space
294: ESC-] forward-paragraph
295: ESC-? apropos
296: ESC-^ case-word-invert delete-indentation
297: ESC-a backward-sentence backward-sentence
298: ESC-b backward-word backward-word
299: ESC-d delete-next-word kill-word
300: ESC-e forward-sentence forward-sentence
301: ESC-f forward-word forward-word
302: ESC-g fill-region
303: ESC-h delete-previous-word mark-paragraph
304: ESC-j indent-C-procedure indent-new-comment-line
305: ESC-k kill-sentence
306: ESC-l case-word-lower downcase-word
307: ESC-q query-replace-string fill-paragraph
308: ESC-r replace-string move-to-window-line
309: ESC-t transpose-words
310: ESC-u case-word-upper upcase-word
311: ESC-v previous-page scroll-down
312: ESC-w copy-region-as-kill
313: ESC-x execute-extended-command execute-extended-command
314: ESC-y yank-pop
315: ESC-z scroll-one-line-down zap-to-char
316: ESC-| shell-command-on-region
317: ESC-~ not-modified
318: ESC-DEL backward-kill-word
319: ^_ return-to-monitor
320: .., self-insert
321: - minus
322: .../ self-insert
323: 0..9 digit
324: :..~ self-insert
325: ^? delete-previous-character
326:
327:
328:
329:
330: Command Binding Cross-references. By name:
331:
332: Command VMS (Unipress) Key GNU Key
333: ----------------------------- --------------------- ------------
334: abbrev-prefix-mark ESC-'
335: add-global-abbrev ^X-+
336: add-mode-abbrev ^X-^A
337: advertised-undo ^X-u
338: append-next-kill ESC-^W
339: append-to-buffer ^X-a
340: apropos ESC-?
341: argument-prefix ^U
342: backward-char ^B
343: backward-character ^B
344: backward-kill-sentence ^X-DEL
345: backward-kill-word ESC-DEL
346: backward-list ESC-^P
347: backward-page ^X-[
348: backward-paragraph ESC-(
349: backward-paragraph ESC-[
350: backward-sentence ESC-a
351: backward-sentence ESC-a
352: backward-sexp ESC-^B
353: backward-up-list ESC-^U
354: backward-word ESC-b
355: backward-word ESC-b
356: beginning-of-buffer ESC-<
357: beginning-of-defun ESC-^A
358: beginning-of-file ESC-<
359: beginning-of-line ^A
360: beginning-of-line ^A
361: beginning-of-window ESC-,
362: call-last-kbd-macro ^X-e
363: case-region-invert ESC-^^
364: case-word-invert ESC-^
365: case-word-lower ESC-l
366: case-word-upper ESC-u
367: command-apropos ^H-a
368: compile-it ^X-^E
369: control-x-prefix ^X
370: control-x-prefix ^X
371: copy-rectangle-to-register ^X-r
372: copy-region-as-kill ESC-w
373: copy-to-register ^X-x
374: count-lines-page ^X-l
375: count-lines-region ESC-=
376: ctl-x-4-prefix ^X-4
377: delete-blank-linkes ^X-^O
378: delete-char ^D
379: delete-horizontal-space ESC-\
380: delete-indentation ESC-^
381: delete-next-character ^D
382: delete-next-word ESC-d
383: delete-other-windows ^X-1
384: delete-other-windows ^X-1
385: delete-previous-character ^H ^?
386: delete-previous-character ^?
387: delete-previous-word ESC-h
388: delete-region-to-buffer ESC-^W
389: delete-to-killbuffer ^W
390: delete-window ^X-0
391: delete-window ^X-d
392: describe-bindings ^H-b
393: describe-copying ^H-^C
394: describe-distribution ^H-^D
395: describe-function ^H-f
396: describe-function ^H-d
397: describe-key ^H-k
398: describe-key-briefly ^H-c
399: describe-mode ^H-m
400: describe-syntax ^H-s
401: describe-variable ^H-v
402: describe-word-in-buffer ^X-^D
403: digit 0..9
404: digit 0..9
405: digit-argument ESC-0..ESC-9
406: dired ^X-d
407: dired-other-window ^X-4-d
408: dot-to-register ^X-/
409: down-list ESC-^D
410: downcase-region ^X-^L
411: downcase-word ESC-l
412: end-kbd-macro ^X-)
413: end-of-buffer ESC->
414: end-of-defun ESC-^E
415: end-of-file ESC->
416: end-of-line ^E
417: end-of-line ^E
418: end-of-window ESC-.
419: enlarge-window ^X-^
420: enlarge-window ^X-z
421: enlarge-window-horizontally ^X-}
422: esc-prefix ESC
423: esc-prefix ESC
424: eval-expression ESC-ESC
425: eval-last-sexp ^X-^E
426: exchange-dot-and-mark ^X-^X
427: exchange-dot-and-mark ^X-^X
428: execute-extended-command ESC-x
429: execute-extended-command ESC-x
430: execute-keyboard-macro ^X-e
431: execute-mlisp-line ESC-ESC
432: execute-monitor-command ^X-!
433: exit-emacs ^C
434: exit-emacs ^X-^C
435: exit-emacs ESC-^C
436: exit-recursive-edit ^C
437: exit-recursive-edit ESC-^C
438: fill-paragraph ESC-q
439: fill-region ESC-g
440: find-alternate-file ^X-^V
441: find-file ^X-^F
442: find-file-other-window ^X-4-^F
443: find-file-other-window ^X-4-f
444: find-file-read-only ^X-^R
445: find-tag ESC-.
446: find-tag-other-window ^X-4-.
447: forward-char ^F
448: forward-character ^F
449: forward-list ESC-^N
450: forward-page ^X-]
451: forward-paragraph ESC-)
452: forward-paragraph ESC-]
453: forward-sentence ESC-e
454: forward-sentence ESC-e
455: forward-sexp ESC-^F
456: forward-word ESC-f
457: forward-word ESC-f
458: help-command ^H
459: help-for-help ^H-?
460: help-for-help ^H-^H
461: help-with-tutorial ^H-t
462: illegal-operation ^G
463: indent-C-procedure ESC-j
464: indent-for-comment ESC-;
465: indent-for-tab-command ^I
466: indent-new-comment-line ESC-^J
467: indent-new-comment-line ESC-j
468: indent-region ESC-^\
469: indent-rigidly ^X-^I
470: info ^H-i
471: insert-file ^X-^I
472: insert-file ^X-i
473: insert-parentheses ESC-(
474: insert-register ^X-g
475: inverse-add-global-abbrev ^X--
476: inverse-add-mode-abbrev ^X-^H
477: isearch-backward ^R
478: isearch-forward ^S
479: isearch-forward-regexp ESC-^S
480: just-one-space ESC-<SP>
481: kbd-macro-query ^X-q
482: kill-buffer ^X-k
483: kill-line ^K
484: kill-region ^W
485: kill-sentence ESC-k
486: kill-sexp ESC-^K
487: kill-to-end-of-line ^K
488: kill-word ESC-d
489: line-to-top-of-window ESC-!
490: list-buffers ^X-^B
491: list-buffers ^X-^B
492: list-directory ^X-^D
493: mail ^X-m
494: mail-other-window ^X-4-m
495: mark-defun ^X-^H
496: mark-page ^X-^P
497: mark-paragraph ESC-h
498: mark-sexp ESC-^@
499: mark-whole-buffer ^X-h
500: mark-word ESC-@
501: meta-digit ESC-0..ESC-9
502: meta-minus ESC--
503: minus -
504: minus -
505: move-past-close-and-reindent ESC-)
506: move-to-window-line ESC-r
507: narrow-to-page ^X-p
508: narrow-to-region ^X-n
509: negative-argument ESC--
510: new-undo ^X-^U
511: newline ^M
512: newline ^M
513: newline-and-backup ^O
514: newline-and-indent ^J
515: newline-and-indent ^J
516: next-error ^X-^N
517: next-error ^X-`
518: next-line ^N
519: next-line ^N
520: next-page ^V
521: next-window ^X-n
522: not-modified ESC-~
523: open-line ^O
524: other-window ^X-o
525: page-next-window ESC-^V
526: pop-to-buffer ^X-4-b
527: previous-line ^P
528: previous-line ^P
529: previous-page ESC-v
530: previous-window ^X-p
531: query-replace ESC-%
532: query-replace-string ESC-q
533: quote-character ^Q
534: quoted-insert ^Q
535: read-file ^X-^R
536: recenter ^L
537: redraw-display ^L
538: register-to-dot ^X-j
539: repeat-complex-command ^X-ESC
540: replace-string ESC-r
541: return-to-monitor ^_(CTL-/)
542: save-buffer ^X-^S
543: save-buffers-kill-emacs ^X-^C
544: save-some-buffers ^X-s
545: scroll-down ESC-v
546: scroll-left ^X-<
547: scroll-one-line-down ESC-z
548: scroll-one-line-up ^Z
549: scroll-other-window ESC-^V
550: scroll-right ^X->
551: scroll-up ^V
552: search-forward ^S
553: search-reverse ^R
554: self-insert ^I
555: self-insert <SP>..,
556: self-insert .../
557: self-insert :..~
558: set-comment-column ^X-;
559: set-fill-column ^X-f
560: set-fill-prefix ^X-.
561: set-goal-column ^X-^N
562: set-mark ^@
563: set-mark-command ^@
564: set-selective-display ^X-$
565: shell-command ESC-!
566: shell-command-on-region ESC-|
567: shrink-window ^X-^Z
568: shrink-window-horizontally ^X-{
569: spell-word ESC-$
570: split-current-window ^X-2
571: split-line ESC-^O
572: split-window-horizontally ^X-5
573: split-window-vertically ^X-2
574: start-kbd-macro ESC-(
575: start-remembering ^X-(
576: stop-remembering ^X-)
577: suspend-emacs ^X-^Z
578: suspend-emacs ^Z
579: switch-to-buffer ^X-b
580: switch-to-buffer ^X-b
581: tags-loop-continue ESC-,
582: toggle-read-only ^X-^Q
583: transpose-characters ^T
584: transpose-chars ^T
585: transpose-lines ^X-^T
586: transpose-sexps ESC-^T
587: transpose-words ESC-t
588: universal-argument ^U
589: upcase-region ^X-^U
590: upcase-word ESC-u
591: use-old-buffer ^X-^O
592: view-emacs-news ^H-^N
593: view-emacs-news ^H-n
594: view-lossage ^H-l
595: visit-file ^X-^V
596: what-cursor-position ^X-=
597: where-is ^H-w
598: widen ^X-w
599: write-current-file ^X-^S
600: write-file ^X-^W
601: write-modified-files ^X-^M
602: write-named-file ^X-^W
603: write-pause-or-exit ^X-^F
604: yank ^Y
605: yank-buffer ESC-^Y
606: yank-from-killbuffer ^Y
607: yank-pop ESC-y
608: zap-to-char ESC-z
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.