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