Выбрать главу

Table A-7. Completion

Table A-7. Completion (Chapter 14)

Variable Default Description
completion-auto-help t If non-nil, provide help if a completion (via Tab or Enter in minibuffer) is invalid or ambiguous.
completion-ignored-extensions (see Chapter 14) List of filename suffixes Emacs ignores when completing filenames (for example, ~).
completion-ignore-case nil If non-nil, ignore case distinctions when doing completion.

Table A-8. Miscellaneous

Table A-8. Miscellaneous

Variable Default Description
kill-ring-max 60 Keep n pieces of deleted text in the kill ring before deleting oldest kills.
require-final-newline nil If a file being saved is missing a final newline: nil means don't add one; t means add one automatically; otherwise ask whether to add a newline.
next-line-add-newlines nil If non-nil, next-line (C-n or down arrow) inserts newlines when at the end of the buffer, rather than signaling an error.
undo-limit, undo-strong-limit 20000, 30000 These two variables jointly control how much space Emacs is willing to allocate to supporting the undo command. If you ever find yourself wanting to undo more than past what Emacs remembers, you might want to investigate increasing these limits; with today's memory sizes they can probably comfortably be much larger.
mac-command-key-is-meta t If t, the Mac Command key is used for Meta; if nil, the Option key is Meta instead.

Appendix B. Emacs Lisp Packages

The tables in this appendix list the most useful Lisp packages that come with Emacs. All Lisp packages are typically located in the directory emacs-source/lisp, where emacs-source is the directory in which you placed the Emacs source distribution. We have omitted all of the packages that provide "basic" Emacs support; likewise, we have omitted many packages whose functionality is obsolete or unspeakably obscure.

While some of these packages are described in some detail in this book, most aren't; you will have to rely on GNU Emacs' help for precise descriptions of what the package does. See Chapter 14 for details about help; the most important help commands you will need for finding out about the functionality of Lisp packages are C-h p (for finder-by-keyword), C-h f (for describe-function), and C-h m (for describe-mode).

C-h p is especially helpful. It lets you navigate through a hierarchy of information about all packages available on your system, from general areas of functionality, like those in the tables in this appendix, to the C-h m information about each individual mode. Unfortunately, the detailed information is sometimes incomplete and also lists many packages that could not possibly be interesting to anyone other than hard-core Emacs customizers.

Wherever it is reasonable, the tables in this appendix give commands that "start" the package. This startup information has the following meanings:

• If the package implements a major mode, the startup command is the function that puts Emacs into this major mode.

• If the package implements a major mode that is automatically loaded when you visit a file with a certain suffix, we list "suffix suffixname" in addition to the startup command.

• If the package implements a minor mode, the startup command is the function that puts Emacs into this minor mode.

• If the package implements a set of general-purpose functions, we've tried to pick the most "typical" of these functions. For example, the studly package implements three commands. We arbitrarily picked studlify-region as one way to invoke this package. If there isn't any reasonable choice, we list "many."

Finally, a word on using the packages. Some packages are automatically loaded when Emacs starts; some are loaded when you visit a file with the appropriate suffix (such as many of the modes for programming languages); some are automatically loaded whenever you give the appropriate command (for example, M-x shell Enter loads the package shell.el for shell-mode); and some are never automatically loaded. So how do you know which is which?

You don't really have to concern yourself with this issue. In the tables, the Startup column tells you what command (or commands) put the package to work. Start Emacs, and give this command (M-x startup-command Enter). If Emacs complains no match, the package wasn't loaded automatically and you need to load the package "by hand." To do so during an Emacs session, use the command M-x load-library name Enter, where the package's "name" is given in the first column of the table. You can also tell Emacs to load packages automatically at startup time by putting lines in your .emacs file that have this form: