Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watmath!clyde!rutgers!mit-eddie!bloom-beacon!oberon!cit-vax!ucla-cs!zen!ucbcad!ames!amdcad!sun!pitstop!sundc!seismo!uunet!steinmetz!eraserhead!duff From: duff@eraserhead.UUCP Newsgroups: comp.emacs Subject: Re: gnuemacs programmers guide Message-ID: <7496@steinmetz.steinmetz.UUCP> Date: Wed, 30-Sep-87 14:28:45 EDT Article-I.D.: steinmet.7496 Posted: Wed Sep 30 14:28:45 1987 Date-Received: Sat, 3-Oct-87 04:24:15 EDT References: <4755@ncoast.UUCP> <527@home.CSNET> <10651@beta.UUCP> Sender: root@steinmetz.steinmetz.UUCP Reply-To: duff@eraserhead.UUCP (David A Duff) Organization: General Electric CRD, Schenectady, NY Lines: 1127 Keywords: elisp, programmers guide Summary: Gnu Emacs Programmers Manual Old Outline In article <10651@beta.UUCP> dph@LANL.GOV.ARPA (David P Huelsbeck) writes: >In article <527@home.CSNET> ekberg@home.CSNET (Tom Ekberg) writes: >>Does anyone out there know of a programmers guide for gnuemacs? After > [...] >> Even a summary of all of the forms >>would help (yes, I have looked at the documentation string but even that isn't >>enough). Well, how about it? > >Yes. This would be a big help. > Well, at one time, there was an outline of the programmers manual floating around and I got a copy of it. I found it useful sometimes when I was trying to figure out how to do certain tasks becuase it grouped all of the commands according to their general function. Here is an (almost surely out-of-date) copy that I have been using for a while. If anyone has a more current or more detailed one, I think it would be nice to post it. I recieved this (indirectly) from liberte@b.cs.uiuc.edu (Daniel LaLiberte). ================ Posted-Date: 11 Mar 87 10:47 EST >From: liberte%b.cs.uiuc.edu.tcpip@csbvax.steinmetz Subject: updated outline To: MONTANARO@MONA.steinmetz Received: from b.cs.uiuc.edu by a.cs.uiuc.edu with SMTP (UIUC-5.44/9.7) id AA01450; Wed, 11 Mar 87 02:08:05 CST Received: by b.cs.uiuc.edu (UIUC-5.52/9.7) id AA13131; Wed, 11 Mar 87 02:06:35 CST Date: Wed, 11 Mar 87 02:06:35 CST >From: liberte@b.cs.uiuc.edu (Daniel LaLiberte) Message-Id: <8703110806.AA13131@b.cs.uiuc.edu> To: gnu-manual@a.cs.uiuc.edu Subject: updated outline Here is the updated outline as of 18.37 or so. It is a little bit reorganized, but looking it over, it should be obvious that it needs some major overhaul. I got tired of trying to figure out where every little thing should go. In the real manual, I would expect lots of cross references. When you decide that you want to write about one of these sections, or part of a section, or even just an introduction for a section, then you might also consider how to reorganize it, what things should go where, etc. dan (our ARPAnet connection will be intermittent for a while - keep trying) ----------------- Copyright (C) 1986 Daniel LaLiberte GNU Emacs Programmers Manual (outline) GNU Emacs Lisp Part I. Lisp. Objects and types: atom, integer, symbol, cons, lists, vector, string, buffer, marker, built-in-function, window, process Lists: atom cons list make-list eq equal null consp listp nlistp sequencep car car-safe cdr cdr-safe setcar setcdr append nthcdr nth copy-alist memq assq assoc rassq delq nreverse reverse sort nconc mapconcat mapcar Numbers: integerp natnump zerop integer-or-marker-p = < > <= >= /= int-to-string string-to-int + - * / % 1+ 1- max min longand logior logxor lognot ash lsh random Arrays Vectors Sequences: make-vector vector vectorp stringp arrayp sequencep aref aset vconcat copy-sequence length elt fillarray Characters and Strings: make-string stringp char-or-stringp int-to-string string-to-int char-to-string string-to-char concat substring string-equal string-lessp char-equal Symbols: General name, value as variable, function definition, property list, get put intern intern-soft mapatoms make-symbol symbolp boundp fboundp makunbound fmakeunbound symbol-function symbol-plist symbol-name symbol-value default-value fset setplist set set-default copy-alist assq Variables obarray values Garbage purecopy garbage-collect Variables gc-cons-threshold pure-bytes-used data-bytes-used data-bytes-free purify-flag Lisp expressions: variables vs constants vs function calls vs special forms (a funny sort of function call) Mention eval setq quote. Macros defmacro macroexpand Functions: subrp function eval apply funcall mapatoms mapconcat mapcar defun defmacro macroexpand autoload fboundp fmakunbound Simple args and rest args. identity call-interactively universal-argument digit-argument negative-argument prefix-numeric-value interactive interactive-p commandp documentation documentation-property Snarf-documentation substitute-command-keys Variables prefix-arg current-prefix-arg command-history Variables and binding: setq defvar defconst boundp makunbound Explain dynamic (vs lexical) scope. let let* Variables that Emacs primitives look at vs. Variables that users may access user-variable-p set-variable Per-buffer variables (there are two kinds of these) make-variable-buffer-local make-local-variable global-value global-set hack-local-variables Control Structures progn prog1 prog2 or and cond if while catch throw unwind-protect condition-case signal Errors unwind-protect condition-case signal error backtrace-debug backtrace Evaluation, Compilation, and Debugging load auto-load provide require featurep eval-region eval-current-buffer eval-expression edit-and-eval-command byte-compile-file byte-recompile-directory batch-byte-compile byte-code disassemble debug debug-on-entry cancel-debug-on-entry Variables features load-path load-in-progress max-specpdl-size max-lisp-eval-depth quit-flag inhibit-quit stack-trace-on-error debug-on-error debug-on-quit debug-on-next-call debugger Lisp I/O to streams. read read-from-string print prin1 princ Strings as streams. Buffers as streams. Markers as streams. Functions as streams. Minibuffer streams. scan-lists scan-sexps parse-partial-sexp Variables parse-sexp-ignore-comments ------------------------------------------------------ Part II. Lisp and Editing top-level recursion-depth recursive-edit exit-recursive-edit abort-recursive-edit save-excursion Buffers buffer-list get-buffer get-file-buffer get-buffer-create generate-new-buffer buffer-name buffer-number buffer-file-name buffer-local-variables buffer-modified-p set-buffer-modified-p rename-buffer other-buffer buffer-flush-undo kill-buffer kill-some-buffers switch-to-buffer switch-to-buffer-other-window pop-to-buffer current-buffer set-buffer barf-if-buffer-read-only bury-buffer erase-buffer list-buffers lock-buffer unlock-buffer buffer-size point-min point-min-marker point-max point-max-marker Standard per-buffer variables and their uses make-variable-buffer-local make-local-variable kill-local-variable kill-all-local-variables Variables mode-line-format default-mode-line-format abbrev-mode default-abbrev-mode ctl-arrow default-ctl-arrow truncate-lines default-truncate-lines fill-column default-fill-column left-margin default-left-margin tab-width default-tab-width case-fold-search default-case-fold-search major-mode default-major-mode mode-name default-directory auto-fill-hook make-backup-files bacup-by-copying backup-by-copying-when-linked backup-by-copying-when-mismatch buffer-offer-save file-procious-flag version-control dired-kept-versions dired-listing-switches trim-versions-without-asking kept-old-versions kept-new-versions require-final-newline auto-save-default auto-save-visited-file-name save-abbrevs find-file-run-dired find-file-not-found-hooks find-file-hooks write-file-hooks buffer-auto-save-file-name buffer-read-only buffer-backed-up buffer-saved-size selective-display selective-display-ellipses overwrite-mode Positions point window-point set-window-point register-to-point point-to-register buffer-size point-max point-min bobp eobp bolp eolp beginning-of-buffer end-of-buffer goto-char goto-line what-line what-cursor-position forward-char backward-char forward-line beginning-of-line end-of-line move-to-column current-column vertical-motion next-line previous-line set-goal-column following-char preceding-char char-after buffer-substring buffer-string markers mark set-mark set-mark-command exchange-point-and-mark pop-mark push-mark process-mark abbrev-prefix-mark mark-marker mark-word mark-paragraph mark-sexp mark-page mark-whole-buffer markerp integer-or-marker-p make-marker set-marker copy-marker point-max-marker point-min-marker marker-position marker-buffer point-marker insert-before-markers region-beginning region-end count-lines-region count-lines clipping restrictions narrow-to-page narrow-to-region widen point-max point-min point-max-marker point-min-marker save-restriction Variables track-eol goal-column temporary-goal-column mark-ring mark-ring-max Inserting and Deleting insert quoted-insert insert-before-markers self-insert-and-exit self-insert-command insert-buffer-substring newline split-line open-line delete-region subst-char-in-region indent-to current-indentation delete-indentation back-to-indentation newline-and-indent reindent-then-newline-and-indent forward-to-indentation backward-to-indentation indent-according-to-mode indent-for-tab-command indent-rigidly indent-region indent-relative-maybe indent-relative edit-tab-stops-note-changes tab-to-tab-stop fixup-whitespace delete-horizontal-space just-one-space delete-blank-lines backward-delete-char-untabify zap-to-char delete-char delete-backward-char kill-line kill-region Variables indent-tabs-mode indent-region-function tab-stop-list edit-tab-stops-map edit-tab-stops-buffer indent-line-function kill-ring kill-ring-max kill-ring-yank-pointer Commands enable-command disable-command Self-inserting commands auto-fill parenthesis matching Abbreviations - all the variables blink-matching-open Variables blink-paren-hook blink-matching-paren blink-matching-paren-distance Undo undo buffer-flush-undo undo-boundary undo-more undo-start buffer-modified Searching and matching looking-at string-match scan-buffer skip-chars-forward skip-chars-backward search-backward search-forward word-search-backward word-search-forward re-search-backward re-search-forward replace-match match-beginning match-end match-data store-match-data regexp-quote backward-prefix-chars Variables paragraph-start paragraph-separate sentence-end page-delimiter case-replace Parsing and scanning Syntax Tables syntax-table-p syntax-table standard-syntax-table copy-syntax-table set-syntax-table char-syntax modify-syntax-entry describe-syntax Variables standard-syntax-table Major and Minor Modes fundamental-mode normal-mode set-auto-mode hack-local-variables run-hooks Variables fundamental-mode-map mode-specific-map help-map mode-line-buffer-identification mode-line-process initial-major-mode minor-mode-alist auto-mode-alist command-switch-alist Keyboard Macros Variables defining-kbd-macro executing-macro executing-kbd-macro last-kbd-macro Keymaps keymapp make-keymap make-sparse-keymap define-key lookup-key key-binding local-key-binding global-key-binding global-set-key local-set-key global-unset-key local-unset-key define-prefix-command use-global-map use-local-map current-local-map accessible-keymaps key-description single-key-description text-char-description where-is-internal where-is describe-bindings apropos execute-extended-command substitute-command-keys suppress-keymap substitute-key-definition Variables global-map function-keymap ctl-x-4-map ctl-x-map esc-map mouse-map Minibuffer: read-from-minibuffer read-minibuffer eval-minibuffer read-string read-no-blanks-input read-command read-function read-variable read-buffer try-completion all-completions minibuffer-complete minibuffer-complete-and-exit minibuffer-completion-help self-insert-and-exit exit-minibuffer y-or-n-p yes-or-no-p Relate this to interactive. Minibuffer keymaps. Variables cursor-in-echo-area minibuffer-local-map minibuffer-local-ns-map minibuffer-local-completion-map minibuffer-local-must-match-map completion-auto-help completion-ignore-case completion-ignored-extensions enable-recursive-minibuffers minibuffer-completion-table minibuffer-completion-predicate minibuffer-completion-confirm minibuffer-help-form Input/Output - this really needs work baud-rate send-string-to-terminal read-quoted-char read-key-sequence command-execute input-pending-p recent-keys this-command-keys open-dribble-file open-termscript discard-input set-input-mode message format write-char with-output-to-temp-buffer terpri prin1 prin1-to-string princ print read-char get-file-char read read-from-string momentary-string-display sit-for sleep-for ding keyboard-quit Variables standard-output standard-input print-length inverse-video visible-bell window-system disabled-command-hook meta-flag last-command-char last-input-char unread-command-char meta-prefix-char last-command this-command auto-save-interval echo-keystrokes help-char help-form top-level keyboard-translate-table Files File data transfer. File manipulation. list-directory directory-files file-name-completion file-name-all-completions file-name-all-versions file-attributes file-locked-p file-name-directory file-name-nondirectory file-name-as-directory directory-file-name make-temp-name expand-file-name substitute-in-file-name copy-file delete-file rename-file add-name-to-file make-symbolic-link define-logical-name file-name-absolute-p file-exists-p file-readable-p file-writable-p file-symlink-p file-directory-p file-modes set-file-modes file-newer-than-file-p verify-visited-file-modtime clear-visited-file-modtime file-nlinks recover-file kill-some-buffers auto-save-mode make-auto-save-file-name auto-save-file-name-p save-buffers-kill-emacs normal-mode set-auto-mode hack-local-variables set-visited-file-name write-file backup-buffer file-name-sans-version make-backup-file-name backup-file-name-p find-backup-file-name save-buffer basic-save-buffer delete-auto-save-file-if-necessary basic-save-buffer save-some-buffers not-modified toggle-read-only do-auto-save set-buffer-auto-saved recent-auto-save-p read-file-name-internal read-file-name insert-file-contents insert-file append-to-file revert-buffer recover-file write-region verify-visited-file-modtime clear-visited-file-modtime load-file load-library find-file find-file-other-window find-file-read-only find-alternate-file create-file-buffer find-file-noselect after-find-file delete-auto-save-files auto-save-mode rename-auto-save-file make-auto-save-file-name auto-save-file-name-p Variables insert-default-directory revert-buffer-function list-directory-brief-switches list-directory-verbose-switches vms-stmlf-recfm lpr-switches tags-file-name Windows windowp pos-visible-in-window-p window-buffer window-height window-width window-hscroll set-window-hscroll window-edges window-point window-start set-window-point set-window-start delete-window next-window previous-window other-window get-lru-window get-largest-window get-buffer-window delete-other-windows delete-windows-on replace-buffer-in-windows show-buffer selected-window select-window display-buffer split-window enlarge-window shrink-window split-window-vertically split-window-horizontally enlarge-window-horizontally shrink-window-horizontally scroll-up scroll-down scroll-left scroll-right scroll-other-window recenter move-to-window-line save-window-excursion redraw-display set-screen-height set-screen-width screen-height screen-width Variables no-redraw-on-recenter scroll-step debug-end-pos truncate-partial-width-windows mode-line-inverse-video global-mode-string ctl-x-4-map pop-up-windows next-screen-context-lines split-height-threshold window-min-height window-min-width Processes processp get-process get-buffer-process delete-process process-status process-exit-status process-id process-name process-command set-process-buffer process-buffer process-mark set-process-filter process-filter set-process-sentinel process-sentinel process-kill-without-query list-processes start-process accept-process-output waiting-for-user-input-p process-send-region process-send-string interrupt-process kill-process quit-process stop-process continue-process process-send-eof call-process call-process-region shell-command shell-command-on-region Variables delete-exited-processes process-connection-type exec-path exec-directory process-environment compile-command Operating system interface getenv load-average user-login-name user-real-login-name user-full-name system-name current-time-string display-time pwd cd kill-emacs dump-emacs suspend-emacs compile grep shell shell-command shell-command-on-region rnews rmail mail Variables command-line-args system-type non-interactive shell-file-name shell-prompt-pattern display-time-day-and-date command-line-processed inhibit-startup-message inhibit-default-init Permutted Command Index Subject Index ================ Dave Duff (duffd@ge-crd.ARPA) General Electric Corporate Research and Development Schenectady, New York