This is ../info/eintr, produced by makeinfo version 4.8 from emacs-lisp-intro.texi. INFO-DIR-SECTION Emacs START-INFO-DIR-ENTRY * Emacs Lisp Intro: (eintr). A simple introduction to Emacs Lisp programming. END-INFO-DIR-ENTRY This is an `Introduction to Programming in Emacs Lisp', for people who are not programmers. Edition 3.00, 2006 Oct 31 Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. Published by the: GNU Press, Website: http://www.gnupress.org a division of the General: press@gnu.org Free Software Foundation, Inc. Orders: sales@gnu.org 51 Franklin Street, Fifth Floor Tel: +1 (617) 542-5942 Boston, MA 02110-1301 USA Fax: +1 (617) 542-2652 ISBN 1-882114-43-4 Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; there being no Invariant Section, with the Front-Cover Texts being "A GNU Manual", and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled "GNU Free Documentation License". (a) The FSF's Back-Cover Text is: "You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise funds for GNU development." Indirect: eintr-1: 1466 eintr-2: 301398 eintr-3: 599839 Tag Table: (Indirect) Node: Top1466 Node: Preface20357 Node: Why21456 Node: On Reading this Text22097 Node: Who You Are24261 Node: Lisp History26960 Node: Note for Novices27711 Node: Thank You30170 Node: List Processing30651 Ref: List Processing-Footnote-131544 Node: Lisp Lists31747 Node: Numbers Lists32457 Node: Lisp Atoms33484 Node: Whitespace in Lists37146 Node: Typing Lists38387 Node: Run a Program39467 Node: Making Errors41879 Node: Names & Definitions46793 Node: Lisp Interpreter48627 Node: Complications49680 Node: Byte Compiling51224 Node: Evaluation52267 Node: Evaluating Inner Lists53923 Node: Variables56384 Node: fill-column Example57737 Node: Void Function59216 Node: Void Variable60323 Node: Arguments62102 Ref: Arguments-Footnote-163343 Node: Data types64155 Node: Args as Variable or List66119 Node: Variable Number of Arguments67639 Node: Wrong Type of Argument68444 Ref: Wrong Type of Argument-Footnote-171821 Node: message71888 Ref: message-Footnote-175681 Node: set & setq75855 Node: Using set76437 Node: Using setq78676 Node: Counting80793 Node: Summary82734 Node: Error Message Exercises84507 Node: Practicing Evaluation85004 Node: How to Evaluate85835 Node: Buffer Names87334 Node: Getting Buffers92927 Ref: Getting Buffers-Footnote-195399 Node: Switching Buffers95617 Ref: Switching Buffers-Footnote-198872 Ref: Switching Buffers-Footnote-299144 Node: Buffer Size & Locations99801 Node: Evaluation Exercise101786 Node: Writing Defuns102057 Node: Primitive Functions102904 Node: defun104073 Node: Install110517 Node: Effect of installation111781 Node: Change a defun112574 Node: Interactive114241 Node: Interactive multiply-by-seven115238 Node: multiply-by-seven in detail117046 Node: Interactive Options119663 Node: Permanent Installation122714 Node: let124794 Node: Prevent confusion126061 Node: Parts of let Expression127925 Node: Sample let Expression129444 Ref: Sample let Expression-Footnote-1131174 Node: Uninitialized let Variables131422 Node: if132952 Node: if in more detail133746 Node: type-of-animal in detail136454 Node: else138874 Node: Truth & Falsehood141655 Node: nil explained142503 Node: save-excursion144503 Node: Point and mark145191 Node: Template for save-excursion148148 Node: Review149380 Node: defun Exercises157017 Node: Buffer Walk Through157432 Node: Finding More158216 Node: simplified-beginning-of-buffer162076 Node: mark-whole-buffer166416 Node: mark-whole-buffer overview167170 Node: Body of mark-whole-buffer168529 Node: append-to-buffer171530 Node: append-to-buffer overview172073 Node: append interactive174728 Node: append-to-buffer body177079 Node: append save-excursion179119 Node: Buffer Related Review183885 Node: Buffer Exercises185814 Node: More Complex186247 Node: copy-to-buffer186948 Node: insert-buffer189523 Node: insert-buffer code190521 Node: insert-buffer interactive191520 Node: Read-only buffer191925 Node: b for interactive192537 Node: insert-buffer body193632 Node: if & or194774 Node: Insert or197745 Node: Insert let199944 Node: New insert-buffer203572 Node: beginning-of-buffer204723 Node: Optional Arguments206209 Node: beginning-of-buffer opt arg209444 Node: Disentangle beginning-of-buffer210277 Node: Large buffer case211521 Node: Small buffer case213952 Node: beginning-of-buffer complete215565 Node: Second Buffer Related Review218428 Node: optional Exercise220052 Node: Narrowing & Widening220512 Node: Narrowing advantages220970 Node: save-restriction222848 Node: what-line224731 Node: narrow Exercise228733 Node: car cdr & cons229692 Node: Strange Names230352 Node: car & cdr231351 Node: cons235534 Node: Build a list236385 Ref: Build a list-Footnote-1237873 Node: length238050 Node: nthcdr239528 Node: nth242320 Node: setcar243639 Node: setcdr245840 Node: cons Exercise247296 Node: Cutting & Storing Text247656 Node: Storing Text248625 Node: zap-to-char250637 Node: Complete zap-to-char251498 Node: zap-to-char interactive253398 Node: zap-to-char body254870 Node: search-forward256454 Node: progn259394 Node: Summing up zap-to-char261039 Node: kill-region262116 Node: Complete kill-region262975 Node: condition-case267091 Node: Lisp macro269565 Node: copy-region-as-kill271616 Node: Complete copy-region-as-kill272402 Node: copy-region-as-kill body275153 Node: last-command & this-command276120 Node: kill-append function278369 Node: kill-new function282338 Node: Digression into C292559 Ref: Digression into C-Footnote-1297912 Node: defvar298084 Node: See variable current value299536 Node: defvar and asterisk301398 Node: cons & search-fwd Review303167 Node: search Exercises305681 Node: List Implementation306403 Node: Lists diagrammed307414 Node: Symbols as Chest313381 Node: List Exercise315367 Node: Yanking315694 Node: Kill Ring Overview316893 Node: kill-ring-yank-pointer318540 Node: yank nthcdr Exercises320889 Node: Loops & Recursion321588 Ref: Loops & Recursion-Footnote-1322548 Node: while323047 Node: Looping with while324135 Node: Loop Example325891 Node: print-elements-of-list329179 Node: Incrementing Loop331625 Node: Incrementing Example333144 Node: Inc Example parts335510 Node: Inc Example altogether339355 Node: Decrementing Loop342770 Node: Decrementing Example344042 Node: Dec Example parts345518 Node: Dec Example altogether347469 Node: dolist dotimes349652 Node: dolist350374 Node: dotimes353419 Node: Recursion354939 Node: Building Robots355824 Node: Recursive Definition Parts357531 Node: Recursion with list359911 Node: Recursive triangle function363439 Node: Recursive Example arg of 1 or 2364707 Node: Recursive Example arg of 3 or 4366911 Node: Recursion with cond369839 Node: Recursive Patterns372114 Node: Every372511 Node: Accumulate374945 Node: Keep376178 Node: No Deferment378031 Node: No deferment solution380655 Ref: No deferment solution-Footnote-1384521 Ref: No deferment solution-Footnote-2384622 Node: Looping exercise385114 Node: Regexp Search386289 Node: sentence-end387975 Node: re-search-forward391624 Node: forward-sentence394067 Node: Complete forward-sentence394714 Node: fwd-sentence while loops398090 Node: fwd-sentence re-search401556 Node: forward-paragraph403626 Node: forward-paragraph in brief405190 Node: fwd-para let406631 Node: fwd-para while411779 Node: etags419953 Node: Regexp Review424222 Node: re-search Exercises426544 Node: Counting Words427295 Node: Why Count Words427829 Node: count-words-region428769 Node: Design count-words-region429877 Node: Whitespace Bug436288 Node: recursive-count-words445562 Node: Counting Exercise457365 Node: Words in a defun457724 Node: Divide and Conquer458855 Node: Words and Symbols460077 Node: Syntax462011 Node: count-words-in-defun465581 Node: Several defuns471588 Node: Find a File473904 Node: lengths-list-file476387 Node: Several files481531 Node: lengths-list-many-files482131 Node: append484818 Node: Several files recursively485410 Node: Prepare the data488158 Node: Sorting489830 Node: Files List491425 Node: Counting function definitions498654 Node: Readying a Graph507682 Node: Columns of a graph508782 Node: graph-body-print522065 Node: recursive-graph-body-print526661 Node: Printed Axes529299 Node: Line Graph Exercise530009 Node: Emacs Initialization530186 Node: Default Configuration530964 Ref: Default Configuration-Footnote-1532912 Node: Site-wide Init533209 Node: defcustom535143 Node: Beginning a .emacs File540594 Node: Text and Auto-fill542908 Node: Mail Aliases546701 Node: Indent Tabs Mode547577 Node: Keybindings548492 Node: Keymaps551884 Node: Loading Files554042 Node: Autoload556866 Node: Simple Extension559663 Ref: Simple Extension-Footnote-1562905 Node: X11 Colors563164 Ref: X11 Colors-Footnote-1564980 Node: Miscellaneous565131 Node: Mode Line569231 Node: Debugging574650 Node: debug575215 Node: debug-on-entry578211 Node: debug-on-quit581277 Node: edebug582238 Node: Debugging Exercises586234 Node: Conclusion587892 Node: the-the593043 Node: Kill Ring595759 Node: current-kill597676 Node: Understanding current-kill599839 Node: Digression concerning error603283 Node: Determining the Element604451 Node: yank607874 Node: yank-pop610783 Node: ring file613179 Node: Full Graph613520 Node: Labelled Example614097 Node: print-graph Varlist616071 Node: print-Y-axis617718 Node: Height of label618891 Node: Compute a Remainder620850 Node: Y Axis Element624580 Node: Y-axis-column628121 Node: print-Y-axis Penultimate629698 Node: print-X-axis631541 Node: Similarities differences632652 Node: X Axis Tic Marks633452 Node: Print Whole Graph640290 Node: The final version641028 Node: Test print-graph645251 Node: Graphing words in defuns646829 Node: lambda649376 Node: mapcar651012 Node: Another Bug652966 Node: Final printed graph658408 Node: Free Software and Free Manuals659320 Node: GNU Free Documentation License665566 Node: Index687989 Node: About the Author722743 End Tag Table