Mercurial > emacs
comparison lispref/elisp.texi @ 62244:1053cf8f89ea
(Top): Update to the current structure of the manual.
author | Lute Kamstra <lute@gnu.org> |
---|---|
date | Wed, 11 May 2005 23:25:27 +0000 |
parents | 36f1bfc37efb |
children | 2f43def6e036 62afea0771d8 |
comparison
equal
deleted
inserted
replaced
62243:68b153fd6cd9 | 62244:1053cf8f89ea |
---|---|
99 Reference Manual, corresponding to GNU Emacs version 22.1. | 99 Reference Manual, corresponding to GNU Emacs version 22.1. |
100 @end ifnottex | 100 @end ifnottex |
101 | 101 |
102 @menu | 102 @menu |
103 * Introduction:: Introduction and conventions used. | 103 * Introduction:: Introduction and conventions used. |
104 * Standards: Coding Conventions. Coding conventions for Emacs Lisp. | |
105 | 104 |
106 * Lisp Data Types:: Data types of objects in Emacs Lisp. | 105 * Lisp Data Types:: Data types of objects in Emacs Lisp. |
107 * Numbers:: Numbers and arithmetic functions. | 106 * Numbers:: Numbers and arithmetic functions. |
108 * Strings and Characters:: Strings, and functions that work on them. | 107 * Strings and Characters:: Strings, and functions that work on them. |
109 * Lists:: Lists, cons cells, and related functions. | 108 * Lists:: Lists, cons cells, and related functions. |
182 Introduction | 181 Introduction |
183 | 182 |
184 * Caveats:: Flaws and a request for help. | 183 * Caveats:: Flaws and a request for help. |
185 * Lisp History:: Emacs Lisp is descended from Maclisp. | 184 * Lisp History:: Emacs Lisp is descended from Maclisp. |
186 * Conventions:: How the manual is formatted. | 185 * Conventions:: How the manual is formatted. |
186 * Version Info:: Which Emacs version is running? | |
187 * Acknowledgements:: The authors, editors, and sponsors of this manual. | 187 * Acknowledgements:: The authors, editors, and sponsors of this manual. |
188 | 188 |
189 Conventions | 189 Conventions |
190 | 190 |
191 * Some Terms:: Explanation of terms we use in this manual. | 191 * Some Terms:: Explanation of terms we use in this manual. |
194 * Printing Notation:: The format we use for examples that print output. | 194 * Printing Notation:: The format we use for examples that print output. |
195 * Error Messages:: The format we use for examples of errors. | 195 * Error Messages:: The format we use for examples of errors. |
196 * Buffer Text Notation:: The format we use for buffer contents in examples. | 196 * Buffer Text Notation:: The format we use for buffer contents in examples. |
197 * Format of Descriptions:: Notation for describing functions, variables, etc. | 197 * Format of Descriptions:: Notation for describing functions, variables, etc. |
198 | 198 |
199 Tips and Conventions | |
200 | |
201 * Coding Conventions:: Conventions for clean and robust programs. | |
202 * Compilation Tips:: Making compiled code run fast. | |
203 * Documentation Tips:: Writing readable documentation strings. | |
204 * Comment Tips:: Conventions for writing comments. | |
205 * Library Headers:: Standard headers for library packages. | |
206 | |
207 Format of Descriptions | 199 Format of Descriptions |
208 | 200 |
209 * A Sample Function Description:: | 201 * A Sample Function Description:: |
210 * A Sample Variable Description:: | 202 * A Sample Variable Description:: |
211 | 203 |
213 | 205 |
214 * Printed Representation:: How Lisp objects are represented as text. | 206 * Printed Representation:: How Lisp objects are represented as text. |
215 * Comments:: Comments and their formatting conventions. | 207 * Comments:: Comments and their formatting conventions. |
216 * Programming Types:: Types found in all Lisp systems. | 208 * Programming Types:: Types found in all Lisp systems. |
217 * Editing Types:: Types specific to Emacs. | 209 * Editing Types:: Types specific to Emacs. |
210 * Circular Objects:: Read syntax for circular structure. | |
218 * Type Predicates:: Tests related to types. | 211 * Type Predicates:: Tests related to types. |
219 * Equality Predicates:: Tests of equality between any two objects. | 212 * Equality Predicates:: Tests of equality between any two objects. |
220 | 213 |
221 Programming Types | 214 Programming Types |
222 | 215 |
223 * Integer Type:: Numbers without fractional parts. | 216 * Integer Type:: Numbers without fractional parts. |
224 * Floating Point Type:: Numbers with fractional parts and with a large range. | 217 * Floating Point Type:: Numbers with fractional parts and with a large range. |
225 * Character Type:: The representation of letters, numbers and | 218 * Character Type:: The representation of letters, numbers and |
226 control characters. | 219 control characters. |
220 * Symbol Type:: A multi-use object that refers to a function, | |
221 variable, property list, or itself. | |
227 * Sequence Type:: Both lists and arrays are classified as sequences. | 222 * Sequence Type:: Both lists and arrays are classified as sequences. |
228 * Cons Cell Type:: Cons cells, and lists (which are made from cons cells). | 223 * Cons Cell Type:: Cons cells, and lists (which are made from cons cells). |
229 * Array Type:: Arrays include strings and vectors. | 224 * Array Type:: Arrays include strings and vectors. |
230 * String Type:: An (efficient) array of characters. | 225 * String Type:: An (efficient) array of characters. |
231 * Vector Type:: One-dimensional arrays. | 226 * Vector Type:: One-dimensional arrays. |
232 * Symbol Type:: A multi-use object that refers to a function, | 227 * Char-Table Type:: One-dimensional sparse arrays indexed by characters. |
233 variable, property list, or itself. | 228 * Bool-Vector Type:: One-dimensional arrays of @code{t} or @code{nil}. |
229 * Hash Table Type:: Super-fast lookup tables. | |
234 * Function Type:: A piece of executable code you can call from elsewhere. | 230 * Function Type:: A piece of executable code you can call from elsewhere. |
235 * Macro Type:: A method of expanding an expression into another | 231 * Macro Type:: A method of expanding an expression into another |
236 expression, more fundamental but less pretty. | 232 expression, more fundamental but less pretty. |
237 * Primitive Function Type:: A function written in C, callable from Lisp. | 233 * Primitive Function Type:: A function written in C, callable from Lisp. |
238 * Byte-Code Type:: A function written in Lisp, then compiled. | 234 * Byte-Code Type:: A function written in Lisp, then compiled. |
239 * Autoload Type:: A type used for automatically loading seldom-used | 235 * Autoload Type:: A type used for automatically loading seldom-used |
240 functions. | 236 functions. |
241 | 237 |
242 List Type | 238 Cons Cell and List Types |
243 | 239 |
240 * Box Diagrams:: Drawing pictures of lists. | |
244 * Dotted Pair Notation:: An alternative syntax for lists. | 241 * Dotted Pair Notation:: An alternative syntax for lists. |
245 * Association List Type:: A specially constructed list. | 242 * Association List Type:: A specially constructed list. |
246 | 243 |
247 Editing Types | 244 Editing Types |
248 | 245 |
249 * Buffer Type:: The basic object of editing. | 246 * Buffer Type:: The basic object of editing. |
247 * Marker Type:: A position in a buffer. | |
250 * Window Type:: What makes buffers visible. | 248 * Window Type:: What makes buffers visible. |
249 * Frame Type:: Windows subdivide frames. | |
251 * Window Configuration Type::Save what the screen looks like. | 250 * Window Configuration Type::Save what the screen looks like. |
252 * Marker Type:: A position in a buffer. | 251 * Frame Configuration Type::Recording the status of all frames. |
253 * Process Type:: A process running on the underlying OS. | 252 * Process Type:: A process running on the underlying OS. |
254 * Stream Type:: Receive or send characters. | 253 * Stream Type:: Receive or send characters. |
255 * Keymap Type:: What function a keystroke invokes. | 254 * Keymap Type:: What function a keystroke invokes. |
256 * Overlay Type:: How an overlay is represented. | 255 * Overlay Type:: How an overlay is represented. |
257 | 256 |
259 | 258 |
260 * Integer Basics:: Representation and range of integers. | 259 * Integer Basics:: Representation and range of integers. |
261 * Float Basics:: Representation and range of floating point. | 260 * Float Basics:: Representation and range of floating point. |
262 * Predicates on Numbers:: Testing for numbers. | 261 * Predicates on Numbers:: Testing for numbers. |
263 * Comparison of Numbers:: Equality and inequality predicates. | 262 * Comparison of Numbers:: Equality and inequality predicates. |
263 * Numeric Conversions:: Converting float to integer and vice versa. | |
264 * Arithmetic Operations:: How to add, subtract, multiply and divide. | 264 * Arithmetic Operations:: How to add, subtract, multiply and divide. |
265 * Rounding Operations:: Explicitly rounding floating point numbers. | |
265 * Bitwise Operations:: Logical and, or, not, shifting. | 266 * Bitwise Operations:: Logical and, or, not, shifting. |
266 * Numeric Conversions:: Converting float to integer and vice versa. | |
267 * Math Functions:: Trig, exponential and logarithmic functions. | 267 * Math Functions:: Trig, exponential and logarithmic functions. |
268 * Random Numbers:: Obtaining random integers, predictable or not. | 268 * Random Numbers:: Obtaining random integers, predictable or not. |
269 | 269 |
270 Strings and Characters | 270 Strings and Characters |
271 | 271 |
272 * String Basics:: Basic properties of strings and characters. | 272 * String Basics:: Basic properties of strings and characters. |
273 * Predicates for Strings:: Testing whether an object is a string or char. | 273 * Predicates for Strings:: Testing whether an object is a string or char. |
274 * Creating Strings:: Functions to allocate new strings. | 274 * Creating Strings:: Functions to allocate new strings. |
275 * Modifying Strings:: Altering the contents of an existing string. | |
275 * Text Comparison:: Comparing characters or strings. | 276 * Text Comparison:: Comparing characters or strings. |
276 * String Conversion:: Converting characters or strings and vice versa. | 277 * String Conversion:: Converting characters or strings and vice versa. |
277 * Formatting Strings:: @code{format}: Emacs's analogue of @code{printf}. | 278 * Formatting Strings:: @code{format}: Emacs's analogue of @code{printf}. |
278 * Case Conversion:: Case conversion functions. | 279 * Case Conversion:: Case conversion functions. |
280 * Case Tables:: Customizing case conversion. | |
279 | 281 |
280 Lists | 282 Lists |
281 | 283 |
282 * Cons Cells:: How lists are made out of cons cells. | 284 * Cons Cells:: How lists are made out of cons cells. |
283 * List-related Predicates:: Is this object a list? Comparing two lists. | 285 * List-related Predicates:: Is this object a list? Comparing two lists. |
298 | 300 |
299 * Sequence Functions:: Functions that accept any kind of sequence. | 301 * Sequence Functions:: Functions that accept any kind of sequence. |
300 * Arrays:: Characteristics of arrays in Emacs Lisp. | 302 * Arrays:: Characteristics of arrays in Emacs Lisp. |
301 * Array Functions:: Functions specifically for arrays. | 303 * Array Functions:: Functions specifically for arrays. |
302 * Vectors:: Functions specifically for vectors. | 304 * Vectors:: Functions specifically for vectors. |
305 * Vector Functions:: Functions specifically for vectors. | |
306 * Char-Tables:: How to work with char-tables. | |
307 * Bool-Vectors:: How to work with bool-vectors. | |
308 | |
309 Hash Tables | |
310 | |
311 * Creating Hash:: Functions to create hash tables. | |
312 * Hash Access:: Reading and writing the hash table contents. | |
313 * Defining Hash:: Defining new comparison methods | |
314 * Other Hash:: Miscellaneous. | |
303 | 315 |
304 Symbols | 316 Symbols |
305 | 317 |
306 * Symbol Components:: Symbols have names, values, function definitions | 318 * Symbol Components:: Symbols have names, values, function definitions |
307 and property lists. | 319 and property lists. |
311 for recording miscellaneous information. | 323 for recording miscellaneous information. |
312 | 324 |
313 Evaluation | 325 Evaluation |
314 | 326 |
315 * Intro Eval:: Evaluation in the scheme of things. | 327 * Intro Eval:: Evaluation in the scheme of things. |
316 * Eval:: How to invoke the Lisp interpreter explicitly. | |
317 * Forms:: How various sorts of objects are evaluated. | 328 * Forms:: How various sorts of objects are evaluated. |
318 * Quoting:: Avoiding evaluation (to put constants in | 329 * Quoting:: Avoiding evaluation (to put constants in |
319 the program). | 330 the program). |
331 * Eval:: How to invoke the Lisp interpreter explicitly. | |
320 | 332 |
321 Kinds of Forms | 333 Kinds of Forms |
322 | 334 |
323 * Self-Evaluating Forms:: Forms that evaluate to themselves. | 335 * Self-Evaluating Forms:: Forms that evaluate to themselves. |
324 * Symbol Forms:: Symbols evaluate as variables. | 336 * Symbol Forms:: Symbols evaluate as variables. |
325 * Classifying Lists:: How to distinguish various sorts of list forms. | 337 * Classifying Lists:: How to distinguish various sorts of list forms. |
338 * Function Indirection:: When a symbol appears as the car of a list, | |
339 we find the real function via the symbol. | |
326 * Function Forms:: Forms that call functions. | 340 * Function Forms:: Forms that call functions. |
327 * Macro Forms:: Forms that call macros. | 341 * Macro Forms:: Forms that call macros. |
328 * Special Forms:: ``Special forms'' are idiosyncratic primitives, | 342 * Special Forms:: ``Special forms'' are idiosyncratic primitives, |
329 most of them extremely important. | 343 most of them extremely important. |
330 * Autoloading:: Functions set up to load files | 344 * Autoloading:: Functions set up to load files |
331 containing their real definitions. | 345 containing their real definitions. |
332 | 346 |
333 Control Structures | 347 Control Structures |
334 | 348 |
335 * Sequencing:: Evaluation in textual order. | 349 * Sequencing:: Evaluation in textual order. |
336 * Conditionals:: @code{if}, @code{cond}. | 350 * Conditionals:: @code{if}, @code{cond}, @code{when}, @code{unless}. |
337 * Combining Conditions:: @code{and}, @code{or}, @code{not}. | 351 * Combining Conditions:: @code{and}, @code{or}, @code{not}. |
338 * Iteration:: @code{while} loops. | 352 * Iteration:: @code{while} loops. |
339 * Nonlocal Exits:: Jumping out of a sequence. | 353 * Nonlocal Exits:: Jumping out of a sequence. |
340 | 354 |
341 Nonlocal Exits | 355 Nonlocal Exits |
358 * Global Variables:: Variable values that exist permanently, everywhere. | 372 * Global Variables:: Variable values that exist permanently, everywhere. |
359 * Constant Variables:: Certain "variables" have values that never change. | 373 * Constant Variables:: Certain "variables" have values that never change. |
360 * Local Variables:: Variable values that exist only temporarily. | 374 * Local Variables:: Variable values that exist only temporarily. |
361 * Void Variables:: Symbols that lack values. | 375 * Void Variables:: Symbols that lack values. |
362 * Defining Variables:: A definition says a symbol is used as a variable. | 376 * Defining Variables:: A definition says a symbol is used as a variable. |
377 * Tips for Defining:: Things you should think about when you | |
378 define a variable. | |
363 * Accessing Variables:: Examining values of variables whose names | 379 * Accessing Variables:: Examining values of variables whose names |
364 are known only at run time. | 380 are known only at run time. |
365 * Setting Variables:: Storing new values in variables. | 381 * Setting Variables:: Storing new values in variables. |
366 * Variable Scoping:: How Lisp chooses among local and global values. | 382 * Variable Scoping:: How Lisp chooses among local and global values. |
367 * Buffer-Local Variables:: Variable values in effect only in one buffer. | 383 * Buffer-Local Variables:: Variable values in effect only in one buffer. |
384 * Frame-Local Variables:: Variable values in effect only in one frame. | |
385 * Future Local Variables:: New kinds of local values we might add some day. | |
386 * Variable Aliases:: Variables that are aliases for other variables. | |
387 * File Local Variables:: Handling local variable lists in files. | |
388 * Variables with Restricted Values:: Non-constant variables whose value can | |
389 @emph{not} be an arbitrary Lisp object. | |
368 | 390 |
369 Scoping Rules for Variable Bindings | 391 Scoping Rules for Variable Bindings |
370 | 392 |
371 * Scope:: Scope means where in the program a value | 393 * Scope:: Scope means where in the program a value |
372 is visible. Comparison with other languages. | 394 is visible. Comparison with other languages. |
391 * Calling Functions:: How to use an existing function. | 413 * Calling Functions:: How to use an existing function. |
392 * Mapping Functions:: Applying a function to each element of a list, etc. | 414 * Mapping Functions:: Applying a function to each element of a list, etc. |
393 * Anonymous Functions:: Lambda-expressions are functions with no names. | 415 * Anonymous Functions:: Lambda-expressions are functions with no names. |
394 * Function Cells:: Accessing or setting the function definition | 416 * Function Cells:: Accessing or setting the function definition |
395 of a symbol. | 417 of a symbol. |
418 * Obsolete Functions:: Declaring functions obsolete. | |
419 * Inline Functions:: Defining functions that the compiler will open code. | |
420 * Function Safety:: Determining whether a function is safe to call. | |
396 * Related Topics:: Cross-references to specific Lisp primitives | 421 * Related Topics:: Cross-references to specific Lisp primitives |
397 that have a special bearing on how | 422 that have a special bearing on how |
398 functions work. | 423 functions work. |
399 | 424 |
400 Lambda Expressions | 425 Lambda Expressions |
412 * Defining Macros:: How to write a macro definition. | 437 * Defining Macros:: How to write a macro definition. |
413 * Backquote:: Easier construction of list structure. | 438 * Backquote:: Easier construction of list structure. |
414 * Problems with Macros:: Don't evaluate the macro arguments too many times. | 439 * Problems with Macros:: Don't evaluate the macro arguments too many times. |
415 Don't hide the user's variables. | 440 Don't hide the user's variables. |
416 * Indenting Macros:: Specifying how to indent macro calls. | 441 * Indenting Macros:: Specifying how to indent macro calls. |
442 | |
443 Writing Customization Definitions | |
444 | |
445 * Common Keywords:: Common keyword arguments for all kinds of | |
446 customization declarations. | |
447 * Group Definitions:: Writing customization group definitions. | |
448 * Variable Definitions:: Declaring user options. | |
449 * Customization Types:: Specifying the type of a user option. | |
417 | 450 |
418 Loading | 451 Loading |
419 | 452 |
420 * How Programs Do Loading:: The @code{load} function and others. | 453 * How Programs Do Loading:: The @code{load} function and others. |
421 * Library Search:: Finding a library to load. | 454 * Library Search:: Finding a library to load. |
428 * Hooks for Loading:: Providing code to be run when | 461 * Hooks for Loading:: Providing code to be run when |
429 particular libraries are loaded. | 462 particular libraries are loaded. |
430 | 463 |
431 Byte Compilation | 464 Byte Compilation |
432 | 465 |
466 * Speed of Byte-Code:: An example of speedup from byte compilation. | |
433 * Compilation Functions:: Byte compilation functions. | 467 * Compilation Functions:: Byte compilation functions. |
468 * Docs and Compilation:: Dynamic loading of documentation strings. | |
469 * Dynamic Loading:: Dynamic loading of individual functions. | |
470 * Eval During Compile:: Code to be evaluated when you compile. | |
471 * Compiler Errors:: Handling compiler error messages. | |
472 * Byte-Code Objects:: The data type used for byte-compiled functions. | |
434 * Disassembly:: Disassembling byte-code; how to read byte-code. | 473 * Disassembly:: Disassembling byte-code; how to read byte-code. |
435 | 474 |
436 Advising Functions | 475 Advising Emacs Lisp Functions |
437 | 476 |
438 * Simple Advice:: A simple example to explain the basics of advice. | 477 * Simple Advice:: A simple example to explain the basics of advice. |
439 * Defining Advice:: Detailed description of @code{defadvice}. | 478 * Defining Advice:: Detailed description of @code{defadvice}. |
479 * Around-Advice:: Wrapping advice around a function's definition. | |
440 * Computed Advice:: ...is to @code{defadvice} as @code{fset} is to @code{defun}. | 480 * Computed Advice:: ...is to @code{defadvice} as @code{fset} is to @code{defun}. |
441 * Activation of Advice:: Advice doesn't do anything until you activate it. | 481 * Activation of Advice:: Advice doesn't do anything until you activate it. |
442 * Enabling Advice:: You can enable or disable each piece of advice. | 482 * Enabling Advice:: You can enable or disable each piece of advice. |
443 * Preactivation:: Preactivation is a way of speeding up the | 483 * Preactivation:: Preactivation is a way of speeding up the |
444 loading of compiled advice. | 484 loading of compiled advice. |
447 * Combined Definition:: How advice is implemented. | 487 * Combined Definition:: How advice is implemented. |
448 | 488 |
449 Debugging Lisp Programs | 489 Debugging Lisp Programs |
450 | 490 |
451 * Debugger:: How the Emacs Lisp debugger is implemented. | 491 * Debugger:: How the Emacs Lisp debugger is implemented. |
492 * Edebug:: A source-level Emacs Lisp debugger. | |
452 * Syntax Errors:: How to find syntax errors. | 493 * Syntax Errors:: How to find syntax errors. |
494 * Test Coverage:: Ensuring you have tested all branches in your code. | |
453 * Compilation Errors:: How to find errors that show up in | 495 * Compilation Errors:: How to find errors that show up in |
454 byte compilation. | 496 byte compilation. |
455 * Edebug:: A source-level Emacs Lisp debugger. | |
456 | 497 |
457 The Lisp Debugger | 498 The Lisp Debugger |
458 | 499 |
459 * Error Debugging:: Entering the debugger when an error happens. | 500 * Error Debugging:: Entering the debugger when an error happens. |
501 * Infinite Loops:: Stopping and debugging a program that doesn't exit. | |
460 * Function Debugging:: Entering it when a certain function is called. | 502 * Function Debugging:: Entering it when a certain function is called. |
461 * Explicit Debug:: Entering it at a certain point in the program. | 503 * Explicit Debug:: Entering it at a certain point in the program. |
462 * Using Debugger:: What the debugger does; what you see while in it. | 504 * Using Debugger:: What the debugger does; what you see while in it. |
463 * Debugger Commands:: Commands used while in the debugger. | 505 * Debugger Commands:: Commands used while in the debugger. |
464 * Invoking the Debugger:: How to call the function @code{debug}. | 506 * Invoking the Debugger:: How to call the function @code{debug}. |
465 * Internals of Debugger:: Subroutines of the debugger, and global variables. | 507 * Internals of Debugger:: Subroutines of the debugger, and global variables. |
508 | |
509 Edebug | |
510 | |
511 * Using Edebug:: Introduction to use of Edebug. | |
512 * Instrumenting:: You must instrument your code | |
513 in order to debug it with Edebug. | |
514 * Edebug Execution Modes:: Execution modes, stopping more or less often. | |
515 * Jumping:: Commands to jump to a specified place. | |
516 * Edebug Misc:: Miscellaneous commands. | |
517 * Breakpoints:: Setting breakpoints to make the program stop. | |
518 * Trapping Errors:: Trapping errors with Edebug. | |
519 * Edebug Views:: Views inside and outside of Edebug. | |
520 * Edebug Eval:: Evaluating expressions within Edebug. | |
521 * Eval List:: Expressions whose values are displayed | |
522 each time you enter Edebug. | |
523 * Printing in Edebug:: Customization of printing. | |
524 * Trace Buffer:: How to produce trace output in a buffer. | |
525 * Coverage Testing:: How to test evaluation coverage. | |
526 * The Outside Context:: Data that Edebug saves and restores. | |
527 * Instrumenting Macro Calls:: Specifying how to handle macro calls. | |
528 * Edebug Options:: Option variables for customizing Edebug. | |
466 | 529 |
467 Debugging Invalid Lisp Syntax | 530 Debugging Invalid Lisp Syntax |
468 | 531 |
469 * Excess Open:: How to find a spurious open paren or missing close. | 532 * Excess Open:: How to find a spurious open paren or missing close. |
470 * Excess Close:: How to find a spurious close paren or missing open. | 533 * Excess Close:: How to find a spurious close paren or missing open. |
476 input streams. | 539 input streams. |
477 * Input Functions:: Functions to read Lisp objects from text. | 540 * Input Functions:: Functions to read Lisp objects from text. |
478 * Output Streams:: Various data types that can be used as | 541 * Output Streams:: Various data types that can be used as |
479 output streams. | 542 output streams. |
480 * Output Functions:: Functions to print Lisp objects as text. | 543 * Output Functions:: Functions to print Lisp objects as text. |
544 * Output Variables:: Variables that control what the printing | |
545 functions do. | |
481 | 546 |
482 Minibuffers | 547 Minibuffers |
483 | 548 |
484 * Intro to Minibuffers:: Basic information about minibuffers. | 549 * Intro to Minibuffers:: Basic information about minibuffers. |
485 * Text from Minibuffer:: How to read a straight text string. | 550 * Text from Minibuffer:: How to read a straight text string. |
486 * Object from Minibuffer:: How to read a Lisp object or expression. | 551 * Object from Minibuffer:: How to read a Lisp object or expression. |
552 * Minibuffer History:: Recording previous minibuffer inputs | |
553 so the user can reuse them. | |
554 * Initial Input:: Specifying initial contents for the minibuffer. | |
487 * Completion:: How to invoke and customize completion. | 555 * Completion:: How to invoke and customize completion. |
488 * Yes-or-No Queries:: Asking a question with a simple answer. | 556 * Yes-or-No Queries:: Asking a question with a simple answer. |
557 * Multiple Queries:: Asking a series of similar questions. | |
558 * Reading a Password:: Reading a password from the terminal. | |
489 * Minibuffer Misc:: Various customization hooks and variables. | 559 * Minibuffer Misc:: Various customization hooks and variables. |
490 | 560 |
491 Completion | 561 Completion |
492 | 562 |
493 * Basic Completion:: Low-level functions for completing strings. | 563 * Basic Completion:: Low-level functions for completing strings. |
503 | 573 |
504 * Command Overview:: How the command loop reads commands. | 574 * Command Overview:: How the command loop reads commands. |
505 * Defining Commands:: Specifying how a function should read arguments. | 575 * Defining Commands:: Specifying how a function should read arguments. |
506 * Interactive Call:: Calling a command, so that it will read arguments. | 576 * Interactive Call:: Calling a command, so that it will read arguments. |
507 * Command Loop Info:: Variables set by the command loop for you to examine. | 577 * Command Loop Info:: Variables set by the command loop for you to examine. |
578 * Adjusting Point:: Adjustment of point after a command. | |
508 * Input Events:: What input looks like when you read it. | 579 * Input Events:: What input looks like when you read it. |
509 * Reading Input:: How to read input events from the keyboard or mouse. | 580 * Reading Input:: How to read input events from the keyboard or mouse. |
581 * Special Events:: Events processed immediately and individually. | |
510 * Waiting:: Waiting for user input or elapsed time. | 582 * Waiting:: Waiting for user input or elapsed time. |
511 * Quitting:: How @kbd{C-g} works. How to catch or defer quitting. | 583 * Quitting:: How @kbd{C-g} works. How to catch or defer quitting. |
512 * Prefix Command Arguments:: How the commands to set prefix args work. | 584 * Prefix Command Arguments:: How the commands to set prefix args work. |
513 * Recursive Editing:: Entering a recursive edit, | 585 * Recursive Editing:: Entering a recursive edit, |
514 and why you usually shouldn't. | 586 and why you usually shouldn't. |
529 * Format of Keymaps:: What a keymap looks like as a Lisp object. | 601 * Format of Keymaps:: What a keymap looks like as a Lisp object. |
530 * Creating Keymaps:: Functions to create and copy keymaps. | 602 * Creating Keymaps:: Functions to create and copy keymaps. |
531 * Inheritance and Keymaps:: How one keymap can inherit the bindings | 603 * Inheritance and Keymaps:: How one keymap can inherit the bindings |
532 of another keymap. | 604 of another keymap. |
533 * Prefix Keys:: Defining a key with a keymap as its definition. | 605 * Prefix Keys:: Defining a key with a keymap as its definition. |
534 * Menu Keymaps:: A keymap can define a menu for X | |
535 or for use from the terminal. | |
536 * Active Keymaps:: Each buffer has a local keymap | 606 * Active Keymaps:: Each buffer has a local keymap |
537 to override the standard (global) bindings. | 607 to override the standard (global) bindings. |
538 Each minor mode can also override them. | 608 Each minor mode can also override them. |
539 * Key Lookup:: How extracting elements from keymaps works. | 609 * Key Lookup:: How extracting elements from keymaps works. |
540 * Functions for Key Lookup:: How to request key lookup. | 610 * Functions for Key Lookup:: How to request key lookup. |
541 * Changing Key Bindings:: Redefining a key in a keymap. | 611 * Changing Key Bindings:: Redefining a key in a keymap. |
542 * Remapping Commands:: Bindings that translate one command to another. | 612 * Remapping Commands:: Bindings that translate one command to another. |
543 * Key Binding Commands:: Interactive interfaces for redefining keys. | 613 * Key Binding Commands:: Interactive interfaces for redefining keys. |
544 * Scanning Keymaps:: Looking through all keymaps, for printing help. | 614 * Scanning Keymaps:: Looking through all keymaps, for printing help. |
615 * Menu Keymaps:: A keymap can define a menu for X | |
616 or for use from the terminal. | |
545 | 617 |
546 Major and Minor Modes | 618 Major and Minor Modes |
547 | 619 |
548 * Major Modes:: Defining major modes. | 620 * Major Modes:: Defining major modes. |
549 * Minor Modes:: Defining minor modes. | 621 * Minor Modes:: Defining minor modes. |
598 * Visiting Files:: Reading files into Emacs buffers for editing. | 670 * Visiting Files:: Reading files into Emacs buffers for editing. |
599 * Saving Buffers:: Writing changed buffers back into files. | 671 * Saving Buffers:: Writing changed buffers back into files. |
600 * Reading from Files:: Reading files into other buffers. | 672 * Reading from Files:: Reading files into other buffers. |
601 * Writing to Files:: Writing new files from parts of buffers. | 673 * Writing to Files:: Writing new files from parts of buffers. |
602 * File Locks:: Locking and unlocking files, to prevent | 674 * File Locks:: Locking and unlocking files, to prevent |
603 simultaneous editing by two people. | 675 simultaneous editing by two people. |
604 * Information about Files:: Testing existence, accessibility, size of files. | 676 * Information about Files:: Testing existence, accessibility, size of files. |
605 * Contents of Directories:: Getting a list of the files in a directory. | |
606 * Changing Files:: Renaming files, changing protection, etc. | 677 * Changing Files:: Renaming files, changing protection, etc. |
607 * File Names:: Decomposing and expanding file names. | 678 * File Names:: Decomposing and expanding file names. |
679 * Contents of Directories:: Getting a list of the files in a directory. | |
680 * Create/Delete Dirs:: Creating and Deleting Directories. | |
681 * Magic File Names:: Defining "magic" special handling | |
682 for certain file names. | |
683 * Format Conversion:: Conversion to and from various file formats. | |
608 | 684 |
609 Visiting Files | 685 Visiting Files |
610 | 686 |
611 * Visiting Functions:: The usual interface functions for visiting. | 687 * Visiting Functions:: The usual interface functions for visiting. |
612 * Subroutines of Visiting:: Lower-level subroutines that they use. | 688 * Subroutines of Visiting:: Lower-level subroutines that they use. |
613 | 689 |
614 Information about Files | 690 Information about Files |
615 | 691 |
616 * Testing Accessibility:: Is a given file readable? Writable? | 692 * Testing Accessibility:: Is a given file readable? Writable? |
617 * Kinds of Files:: Is it a directory? A link? | 693 * Kinds of Files:: Is it a directory? A symbolic link? |
694 * Truenames:: Eliminating symbolic links from a file name. | |
618 * File Attributes:: How large is it? Any other names? Etc. | 695 * File Attributes:: How large is it? Any other names? Etc. |
619 | 696 |
620 File Names | 697 File Names |
621 | 698 |
622 * File Name Components:: The directory part of a file name, and the rest. | 699 * File Name Components:: The directory part of a file name, and the rest. |
700 * Relative File Names:: Some file names are relative to a | |
701 current directory. | |
623 * Directory Names:: A directory's name as a directory | 702 * Directory Names:: A directory's name as a directory |
624 is different from its name as a file. | 703 is different from its name as a file. |
625 * Relative File Names:: Some file names are relative to a | |
626 current directory. | |
627 * File Name Expansion:: Converting relative file names to absolute ones. | 704 * File Name Expansion:: Converting relative file names to absolute ones. |
628 * Unique File Names:: Generating names for temporary files. | 705 * Unique File Names:: Generating names for temporary files. |
629 * File Name Completion:: Finding the completions for a given file name. | 706 * File Name Completion:: Finding the completions for a given file name. |
707 * Standard File Names:: If your package uses a fixed file name, | |
708 how to handle various operating systems simply. | |
630 | 709 |
631 Backups and Auto-Saving | 710 Backups and Auto-Saving |
632 | 711 |
633 * Backup Files:: How backup files are made; how their names | 712 * Backup Files:: How backup files are made; how their names |
634 are chosen. | 713 are chosen. |
646 * Backup Names:: How backup file names are computed; customization. | 725 * Backup Names:: How backup file names are computed; customization. |
647 | 726 |
648 Buffers | 727 Buffers |
649 | 728 |
650 * Buffer Basics:: What is a buffer? | 729 * Buffer Basics:: What is a buffer? |
730 * Current Buffer:: Designating a buffer as current | |
731 so primitives will access its contents. | |
651 * Buffer Names:: Accessing and changing buffer names. | 732 * Buffer Names:: Accessing and changing buffer names. |
652 * Buffer File Name:: The buffer file name indicates which file | 733 * Buffer File Name:: The buffer file name indicates which file |
653 is visited. | 734 is visited. |
654 * Buffer Modification:: A buffer is @dfn{modified} if it needs to be saved. | 735 * Buffer Modification:: A buffer is @dfn{modified} if it needs to be saved. |
655 * Modification Time:: Determining whether the visited file was changed | 736 * Modification Time:: Determining whether the visited file was changed |
657 * Read Only Buffers:: Modifying text is not allowed in a | 738 * Read Only Buffers:: Modifying text is not allowed in a |
658 read-only buffer. | 739 read-only buffer. |
659 * The Buffer List:: How to look at all the existing buffers. | 740 * The Buffer List:: How to look at all the existing buffers. |
660 * Creating Buffers:: Functions that create buffers. | 741 * Creating Buffers:: Functions that create buffers. |
661 * Killing Buffers:: Buffers exist until explicitly killed. | 742 * Killing Buffers:: Buffers exist until explicitly killed. |
662 * Current Buffer:: Designating a buffer as current | 743 * Indirect Buffers:: An indirect buffer shares text with some |
663 so primitives will access its contents. | 744 other buffer. |
745 * Buffer Gap:: The gap in the buffer. | |
664 | 746 |
665 Windows | 747 Windows |
666 | 748 |
667 * Basic Windows:: Basic information on using windows. | 749 * Basic Windows:: Basic information on using windows. |
668 * Splitting Windows:: Splitting one window into two windows. | 750 * Splitting Windows:: Splitting one window into two windows. |
670 * Selecting Windows:: The selected window is the one that you edit in. | 752 * Selecting Windows:: The selected window is the one that you edit in. |
671 * Cyclic Window Ordering:: Moving around the existing windows. | 753 * Cyclic Window Ordering:: Moving around the existing windows. |
672 * Buffers and Windows:: Each window displays the contents of a buffer. | 754 * Buffers and Windows:: Each window displays the contents of a buffer. |
673 * Displaying Buffers:: Higher-lever functions for displaying a buffer | 755 * Displaying Buffers:: Higher-lever functions for displaying a buffer |
674 and choosing a window for it. | 756 and choosing a window for it. |
757 * Choosing Window:: How to choose a window for displaying a buffer. | |
675 * Window Point:: Each window has its own location of point. | 758 * Window Point:: Each window has its own location of point. |
676 * Window Start:: The display-start position controls which text | 759 * Window Start:: The display-start position controls which text |
677 is on-screen in the window. | 760 is on-screen in the window. |
678 * Vertical Scrolling:: Moving text up and down in the window. | 761 * Textual Scrolling:: Moving text up and down through the window. |
679 * Horizontal Scrolling:: Moving text sideways on the window. | 762 * Vertical Scrolling:: Moving the contents up and down on the window. |
763 * Horizontal Scrolling:: Moving the contents sideways on the window. | |
680 * Size of Window:: Accessing the size of a window. | 764 * Size of Window:: Accessing the size of a window. |
681 * Resizing Windows:: Changing the size of a window. | 765 * Resizing Windows:: Changing the size of a window. |
766 * Coordinates and Windows:: Converting coordinates to windows. | |
682 * Window Configurations:: Saving and restoring the state of the screen. | 767 * Window Configurations:: Saving and restoring the state of the screen. |
768 * Window Hooks:: Hooks for scrolling, window size changes, | |
769 redisplay going past a certain point, | |
770 or window configuration changes. | |
683 | 771 |
684 Frames | 772 Frames |
685 | 773 |
686 * Creating Frames:: Creating additional frames. | 774 * Creating Frames:: Creating additional frames. |
687 * Multiple Displays:: Creating frames on other X displays. | 775 * Multiple Displays:: Creating frames on other X displays. |
702 * Pop-Up Menus:: Displaying a menu for the user to select from. | 790 * Pop-Up Menus:: Displaying a menu for the user to select from. |
703 * Dialog Boxes:: Displaying a box to ask yes or no. | 791 * Dialog Boxes:: Displaying a box to ask yes or no. |
704 * Pointer Shapes:: Specifying the shape of the mouse pointer. | 792 * Pointer Shapes:: Specifying the shape of the mouse pointer. |
705 * Window System Selections::Transferring text to and from other windows. | 793 * Window System Selections::Transferring text to and from other windows. |
706 * Color Names:: Getting the definitions of color names. | 794 * Color Names:: Getting the definitions of color names. |
795 * Text Terminal Colors:: Defining colors for text-only terminals. | |
707 * Resources:: Getting resource values from the server. | 796 * Resources:: Getting resource values from the server. |
708 * Display Feature Testing:: Determining the features of a terminal. | 797 * Display Feature Testing:: Determining the features of a terminal. |
709 | 798 |
710 Positions | 799 Positions |
711 | 800 |
727 Markers | 816 Markers |
728 | 817 |
729 * Overview of Markers:: The components of a marker, and how it relocates. | 818 * Overview of Markers:: The components of a marker, and how it relocates. |
730 * Predicates on Markers:: Testing whether an object is a marker. | 819 * Predicates on Markers:: Testing whether an object is a marker. |
731 * Creating Markers:: Making empty markers or markers at certain places. | 820 * Creating Markers:: Making empty markers or markers at certain places. |
732 * Information from Markers:: Finding the marker's buffer or character | 821 * Information from Markers::Finding the marker's buffer or character |
733 position. | 822 position. |
823 * Marker Insertion Types:: Two ways a marker can relocate when you | |
824 insert where it points. | |
734 * Moving Markers:: Moving the marker to a new buffer or position. | 825 * Moving Markers:: Moving the marker to a new buffer or position. |
735 * The Mark:: How ``the mark'' is implemented with a marker. | 826 * The Mark:: How ``the mark'' is implemented with a marker. |
736 * The Region:: How to access ``the region''. | 827 * The Region:: How to access ``the region''. |
737 | 828 |
738 Text | 829 Text |
739 | 830 |
740 * Near Point:: Examining text in the vicinity of point. | 831 * Near Point:: Examining text in the vicinity of point. |
741 * Buffer Contents:: Examining text in a general fashion. | 832 * Buffer Contents:: Examining text in a general fashion. |
833 * Comparing Text:: Comparing substrings of buffers. | |
742 * Insertion:: Adding new text to a buffer. | 834 * Insertion:: Adding new text to a buffer. |
743 * Commands for Insertion:: User-level commands to insert text. | 835 * Commands for Insertion:: User-level commands to insert text. |
744 * Deletion:: Removing text from a buffer. | 836 * Deletion:: Removing text from a buffer. |
745 * User-Level Deletion:: User-level commands to delete text. | 837 * User-Level Deletion:: User-level commands to delete text. |
746 * The Kill Ring:: Where removed text sometimes is saved for | 838 * The Kill Ring:: Where removed text sometimes is saved for |
747 later use. | 839 later use. |
748 * Undo:: Undoing changes to the text of a buffer. | 840 * Undo:: Undoing changes to the text of a buffer. |
749 * Auto Filling:: How auto-fill mode is implemented to break lines. | 841 * Maintaining Undo:: How to enable and disable undo information. |
842 How to control how much information is kept. | |
750 * Filling:: Functions for explicit filling. | 843 * Filling:: Functions for explicit filling. |
751 * Margins:: How to specify margins for filling commands. | 844 * Margins:: How to specify margins for filling commands. |
845 * Adaptive Fill:: Adaptive Fill mode chooses a fill prefix | |
846 from context. | |
847 * Auto Filling:: How auto-fill mode is implemented to break lines. | |
752 * Sorting:: Functions for sorting parts of the buffer. | 848 * Sorting:: Functions for sorting parts of the buffer. |
849 * Columns:: Computing horizontal positions, and using them. | |
753 * Indentation:: Functions to insert or adjust indentation. | 850 * Indentation:: Functions to insert or adjust indentation. |
754 * Columns:: Computing horizontal positions, and using them. | |
755 * Case Changes:: Case conversion of parts of the buffer. | 851 * Case Changes:: Case conversion of parts of the buffer. |
756 * Text Properties:: Assigning Lisp property lists to text characters. | 852 * Text Properties:: Assigning Lisp property lists to text characters. |
757 * Substitution:: Replacing a given character wherever it appears. | 853 * Substitution:: Replacing a given character wherever it appears. |
758 * Transposition:: Swapping two portions of a buffer. | 854 * Transposition:: Swapping two portions of a buffer. |
759 * Registers:: How registers are implemented. Accessing | 855 * Registers:: How registers are implemented. Accessing |
760 the text or position stored in a register. | 856 the text or position stored in a register. |
761 * Atomic Changes:: Installing several buffer changes ``atomically''. | |
762 * Base 64:: Conversion to or from base 64 encoding. | 857 * Base 64:: Conversion to or from base 64 encoding. |
763 * MD5 Checksum:: Compute the MD5 ``message digest''/``checksum''. | 858 * MD5 Checksum:: Compute the MD5 ``message digest''/``checksum''. |
859 * Atomic Changes:: Installing several buffer changes ``atomically''. | |
764 * Change Hooks:: Supplying functions to be run when text is changed. | 860 * Change Hooks:: Supplying functions to be run when text is changed. |
765 | 861 |
766 The Kill Ring | 862 The Kill Ring |
767 | 863 |
768 * Kill Ring Concepts:: What text looks like in the kill ring. | 864 * Kill Ring Concepts:: What text looks like in the kill ring. |
794 them back. | 890 them back. |
795 * Lazy Properties:: Computing text properties in a lazy fashion | 891 * Lazy Properties:: Computing text properties in a lazy fashion |
796 only when text is examined. | 892 only when text is examined. |
797 * Clickable Text:: Using text properties to make regions of text | 893 * Clickable Text:: Using text properties to make regions of text |
798 do something when you click on them. | 894 do something when you click on them. |
895 * Links and Mouse-1:: How to make @key{Mouse-1} follow a link. | |
799 * Fields:: The @code{field} property defines | 896 * Fields:: The @code{field} property defines |
800 fields within the buffer. | 897 fields within the buffer. |
801 * Not Intervals:: Why text properties do not use | 898 * Not Intervals:: Why text properties do not use |
802 Lisp-visible text intervals. | 899 Lisp-visible text intervals. |
803 | 900 |
822 Searching and Matching | 919 Searching and Matching |
823 | 920 |
824 * String Search:: Search for an exact match. | 921 * String Search:: Search for an exact match. |
825 * Regular Expressions:: Describing classes of strings. | 922 * Regular Expressions:: Describing classes of strings. |
826 * Regexp Search:: Searching for a match for a regexp. | 923 * Regexp Search:: Searching for a match for a regexp. |
924 * POSIX Regexps:: Searching POSIX-style for the longest match. | |
925 * Search and Replace:: Internals of @code{query-replace}. | |
827 * Match Data:: Finding out which part of the text matched | 926 * Match Data:: Finding out which part of the text matched |
828 various parts of a regexp, after regexp search. | 927 various parts of a regexp, after regexp search. |
829 * Saving Match Data:: Saving and restoring this information. | 928 * Searching and Case:: Case-independent or case-significant searching. |
830 * Standard Regexps:: Useful regexps for finding sentences, pages,... | 929 * Standard Regexps:: Useful regexps for finding sentences, pages,... |
831 * Searching and Case:: Case-independent or case-significant searching. | |
832 | 930 |
833 Regular Expressions | 931 Regular Expressions |
834 | 932 |
835 * Syntax of Regexps:: Rules for writing regular expressions. | 933 * Syntax of Regexps:: Rules for writing regular expressions. |
836 * Regexp Example:: Illustrates regular expression syntax. | 934 * Regexp Example:: Illustrates regular expression syntax. |
935 * Regexp Functions:: Functions for operating on regular expressions. | |
837 | 936 |
838 Syntax Tables | 937 Syntax Tables |
839 | 938 |
939 * Syntax Basics:: Basic concepts of syntax tables. | |
840 * Syntax Descriptors:: How characters are classified. | 940 * Syntax Descriptors:: How characters are classified. |
841 * Syntax Table Functions:: How to create, examine and alter syntax tables. | 941 * Syntax Table Functions:: How to create, examine and alter syntax tables. |
942 * Syntax Properties:: Overriding syntax with text properties. | |
943 * Motion and Syntax:: Moving over characters with certain syntaxes. | |
842 * Parsing Expressions:: Parsing balanced expressions | 944 * Parsing Expressions:: Parsing balanced expressions |
843 using the syntax table. | 945 using the syntax table. |
844 * Standard Syntax Tables:: Syntax tables used by various major modes. | 946 * Standard Syntax Tables:: Syntax tables used by various major modes. |
845 * Syntax Table Internals:: How syntax table information is stored. | 947 * Syntax Table Internals:: How syntax table information is stored. |
948 * Categories:: Another way of classifying character syntax. | |
846 | 949 |
847 Syntax Descriptors | 950 Syntax Descriptors |
848 | 951 |
849 * Syntax Class Table:: Table of syntax classes. | 952 * Syntax Class Table:: Table of syntax classes. |
850 * Syntax Flags:: Additional flags each character can have. | 953 * Syntax Flags:: Additional flags each character can have. |
851 | 954 |
852 Abbrevs And Abbrev Expansion | 955 Abbrevs And Abbrev Expansion |
853 | 956 |
854 * Abbrev Mode:: Setting up Emacs for abbreviation. | 957 * Abbrev Mode:: Setting up Emacs for abbreviation. |
855 * Tables: Abbrev Tables. Creating and working with abbrev tables. | 958 * Abbrev Tables:: Creating and working with abbrev tables. |
856 * Defining Abbrevs:: Specifying abbreviations and their expansions. | 959 * Defining Abbrevs:: Specifying abbreviations and their expansions. |
857 * Files: Abbrev Files. Saving abbrevs in files. | 960 * Abbrev Files:: Saving abbrevs in files. |
858 * Expansion: Abbrev Expansion. Controlling expansion; expansion subroutines. | 961 * Abbrev Expansion:: Controlling expansion; expansion subroutines. |
859 * Standard Abbrev Tables:: Abbrev tables used by various major modes. | 962 * Standard Abbrev Tables:: Abbrev tables used by various major modes. |
860 | 963 |
861 Processes | 964 Processes |
862 | 965 |
863 * Subprocess Creation:: Functions that start subprocesses. | 966 * Subprocess Creation:: Functions that start subprocesses. |
967 * Shell Arguments:: Quoting an argument to pass it to a shell. | |
864 * Synchronous Processes:: Details of using synchronous subprocesses. | 968 * Synchronous Processes:: Details of using synchronous subprocesses. |
865 * Asynchronous Processes:: Starting up an asynchronous subprocess. | 969 * Asynchronous Processes:: Starting up an asynchronous subprocess. |
866 * Deleting Processes:: Eliminating an asynchronous subprocess. | 970 * Deleting Processes:: Eliminating an asynchronous subprocess. |
867 * Process Information:: Accessing run-status and other attributes. | 971 * Process Information:: Accessing run-status and other attributes. |
868 * Input to Processes:: Sending input to an asynchronous subprocess. | 972 * Input to Processes:: Sending input to an asynchronous subprocess. |
869 * Signals to Processes:: Stopping, continuing or interrupting | 973 * Signals to Processes:: Stopping, continuing or interrupting |
870 an asynchronous subprocess. | 974 an asynchronous subprocess. |
871 * Output from Processes:: Collecting output from an asynchronous subprocess. | 975 * Output from Processes:: Collecting output from an asynchronous subprocess. |
872 * Sentinels:: Sentinels run when process run-status changes. | 976 * Sentinels:: Sentinels run when process run-status changes. |
977 * Query Before Exit:: Whether to query if exiting will kill a process. | |
978 * Transaction Queues:: Transaction-based communication with subprocesses. | |
873 * Network:: Opening network connections. | 979 * Network:: Opening network connections. |
980 * Network Servers:: Network servers let Emacs accept net connections. | |
981 * Datagrams:: UDP network connections. | |
982 * Low-Level Network:: Lower-level but more general function | |
983 to create connections and servers. | |
874 | 984 |
875 Receiving Output from Processes | 985 Receiving Output from Processes |
876 | 986 |
877 * Process Buffers:: If no filter, output is put in a buffer. | 987 * Process Buffers:: If no filter, output is put in a buffer. |
878 * Filter Functions:: Filter functions accept output from the process. | 988 * Filter Functions:: Filter functions accept output from the process. |
879 * Decoding Output:: Filters can get unibyte or multibyte strings. | 989 * Decoding Output:: Filters can get unibyte or multibyte strings. |
880 * Accepting Output:: How to wait until process output arrives. | 990 * Accepting Output:: How to wait until process output arrives. |
881 | 991 |
882 Operating System Interface | |
883 | |
884 * Starting Up:: Customizing Emacs start-up processing. | |
885 * Getting Out:: How exiting works (permanent or temporary). | |
886 * System Environment:: Distinguish the name and kind of system. | |
887 * Terminal Input:: Recording terminal input for debugging. | |
888 * Terminal Output:: Recording terminal output for debugging. | |
889 * Batch Mode:: Running Emacs without terminal interaction. | |
890 | |
891 Starting Up Emacs | |
892 | |
893 * Startup Summary:: Sequence of actions Emacs performs at start-up. | |
894 * Init File:: Details on reading the init file (@file{.emacs}). | |
895 * Terminal-Specific:: How the terminal-specific Lisp file is read. | |
896 * Command-Line Arguments:: How command line arguments are processed, | |
897 and how you can customize them. | |
898 | |
899 Getting out of Emacs | |
900 | |
901 * Killing Emacs:: Exiting Emacs irreversibly. | |
902 * Suspending Emacs:: Exiting Emacs reversibly. | |
903 | |
904 Emacs Display | 992 Emacs Display |
905 | 993 |
906 * Refresh Screen:: Clearing the screen and redrawing everything on it. | 994 * Refresh Screen:: Clearing the screen and redrawing everything on it. |
995 * Forcing Redisplay:: Forcing redisplay. | |
907 * Truncation:: Folding or wrapping long text lines. | 996 * Truncation:: Folding or wrapping long text lines. |
908 * The Echo Area:: Where messages are displayed. | 997 * The Echo Area:: Where messages are displayed. |
909 * Warnings:: Displaying warning messages for the user. | 998 * Warnings:: Displaying warning messages for the user. |
999 * Progress:: Informing user about progress of a long operation. | |
1000 * Invisible Text:: Hiding part of the buffer text. | |
910 * Selective Display:: Hiding part of the buffer text. | 1001 * Selective Display:: Hiding part of the buffer text. |
911 * Overlay Arrow:: Display of an arrow to indicate position. | |
912 * Temporary Displays:: Displays that go away automatically. | 1002 * Temporary Displays:: Displays that go away automatically. |
913 * Overlays:: Use overlays to highlight parts of the buffer. | 1003 * Overlays:: Use overlays to highlight parts of the buffer. |
914 * Width:: How wide a character or string is on the screen. | 1004 * Width:: How wide a character or string is on the screen. |
1005 * Line Height:: Controlling the height of lines. | |
915 * Faces:: A face defines a graphics style | 1006 * Faces:: A face defines a graphics style |
916 for text characters: font, colors, etc. | 1007 for text characters: font, colors, etc. |
917 * Fringes:: Controlling window fringes. | 1008 * Fringes:: Controlling window fringes. |
1009 * Scroll Bars:: Controlling vertical scroll bars. | |
1010 * Pointer Shape:: Controlling the mouse pointer shape. | |
918 * Display Property:: Enabling special display features. | 1011 * Display Property:: Enabling special display features. |
919 * Images:: Displaying images in Emacs buffers. | 1012 * Images:: Displaying images in Emacs buffers. |
1013 * Buttons:: Adding clickable buttons to Emacs buffers. | |
920 * Blinking:: How Emacs shows the matching open parenthesis. | 1014 * Blinking:: How Emacs shows the matching open parenthesis. |
921 * Inverse Video:: Specifying how the screen looks. | 1015 * Inverse Video:: Specifying how the screen looks. |
922 * Usual Display:: The usual conventions for displaying nonprinting chars. | 1016 * Usual Display:: The usual conventions for displaying nonprinting chars. |
923 * Display Tables:: How to specify other conventions. | 1017 * Display Tables:: How to specify other conventions. |
924 * Beeping:: Audible signal to the user. | 1018 * Beeping:: Audible signal to the user. |
925 * Window Systems:: Which window system is being used. | 1019 * Window Systems:: Which window system is being used. |
926 | 1020 |
1021 Operating System Interface | |
1022 | |
1023 * Starting Up:: Customizing Emacs start-up processing. | |
1024 * Getting Out:: How exiting works (permanent or temporary). | |
1025 * System Environment:: Distinguish the name and kind of system. | |
1026 * User Identification:: Finding the name and user id of the user. | |
1027 * Time of Day:: Getting the current time. | |
1028 * Time Conversion:: Converting a time from numeric form to a string, or | |
1029 to calendrical data (or vice versa). | |
1030 * Processor Run Time:: Getting the run time used by Emacs. | |
1031 * Time Calculations:: Adding, subtracting, comparing times, etc. | |
1032 * Timers:: Setting a timer to call a function at a certain time. | |
1033 * Terminal Input:: Recording terminal input for debugging. | |
1034 * Terminal Output:: Recording terminal output for debugging. | |
1035 * Sound Output:: Playing sounds on the computer's speaker. | |
1036 * X11 Keysyms:: Operating on key symbols for X Windows | |
1037 * Batch Mode:: Running Emacs without terminal interaction. | |
1038 * Session Management:: Saving and restoring state with X Session Management. | |
1039 | |
1040 Starting Up Emacs | |
1041 | |
1042 * Startup Summary:: Sequence of actions Emacs performs at start-up. | |
1043 * Init File:: Details on reading the init file (@file{.emacs}). | |
1044 * Terminal-Specific:: How the terminal-specific Lisp file is read. | |
1045 * Command-Line Arguments:: How command line arguments are processed, | |
1046 and how you can customize them. | |
1047 | |
1048 Getting out of Emacs | |
1049 | |
1050 * Killing Emacs:: Exiting Emacs irreversibly. | |
1051 * Suspending Emacs:: Exiting Emacs reversibly. | |
1052 | |
1053 Tips and Conventions | |
1054 | |
1055 * Coding Conventions:: Conventions for clean and robust programs. | |
1056 * Compilation Tips:: Making compiled code run fast. | |
1057 * Documentation Tips:: Writing readable documentation strings. | |
1058 * Comment Tips:: Conventions for writing comments. | |
1059 * Library Headers:: Standard headers for library packages. | |
1060 | |
927 GNU Emacs Internals | 1061 GNU Emacs Internals |
928 | 1062 |
929 * Building Emacs:: How to preload Lisp libraries into Emacs. | 1063 * Building Emacs:: How to preload Lisp libraries into Emacs. |
930 * Pure Storage:: A kludge to make preloaded Lisp functions sharable. | 1064 * Pure Storage:: A kludge to make preloaded Lisp functions sharable. |
931 * Garbage Collection:: Reclaiming space for Lisp objects no longer used. | 1065 * Garbage Collection:: Reclaiming space for Lisp objects no longer used. |
1066 * Memory Usage:: Info about total size of Lisp objects made so far. | |
1067 * Writing Emacs Primitives:: Writing C code for Emacs. | |
932 * Object Internals:: Data formats of buffers, windows, processes. | 1068 * Object Internals:: Data formats of buffers, windows, processes. |
933 * Writing Emacs Primitives:: Writing C code for Emacs. | |
934 | 1069 |
935 Object Internals | 1070 Object Internals |
936 | 1071 |
937 * Buffer Internals:: Components of a buffer structure. | 1072 * Buffer Internals:: Components of a buffer structure. |
938 * Window Internals:: Components of a window structure. | 1073 * Window Internals:: Components of a window structure. |