This appendix lists some Emacs variables. We chose them for their general usefulness and for their applicability to subjects in this book. The variables below are grouped by category, and their default values are shown (where practical to do so). For more details on specific variables, see the chapters referred to at the beginning of each table. For information on variables used in programming language modes, see Chapter 9. Table A-1. Backups, auto-save, and versioning (Chapter 2, Chapter 12) Variable | Default | Description |
---|
make-backup-files | t | If t, create a backup version of the current file before saving it for the first time. | backup-by-copying | nil | If t, create backup files by copying rather than renaming the file being saved to a backup version. The default is renaming, which is more efficient. Copying can yield different results, especially when you're editing files owned by another user, and in operating systems that allow "hard links" to files (alternate names that are associated with the physical file). There are a raft of variables that can tweak this behavior based on context; check the online help for make-backup-files for the details. | version-control | nil | If t, create numbered versions of files as backups (with names of the form filename~N~). If nil, only do this for files that have numbered versions already. If 'never (note the leading single quote), never make numbered versions. | kept-new-versions | 2 | Number of latest versions of a file to keep when a new numbered backup is made. | kept-old-versions | 2 | Number of oldest versions of a file to keep when a new numbered backup is made. | delete-old-versions | nil | If t, delete excess versions (not those kept according to the above variables) without asking for confirmation first. If nil, ask for confirmation first. If any other value, don't delete excess versions. | auto-save-default | t | If t, do auto-saving of every file visited. | auto-save-visited-file-name | nil | If t, auto-save to the file being visited rather than to a special auto-save file. | auto-save-interval | 300 | Number of keystrokes between auto-saving; if 0, turn off auto-saving. | auto-save-timeout | 30 | Length of time of inactivity after which Emacs auto-saves. If nil or 0, turn off this feature. | delete-auto-save-files | t | Non-nil means delete auto-save files whenever the "real" file is saved. | buffer-offer-save | nil | Non-nil means offer to save the current buffer when exiting Emacs, even if the buffer is not a file. | vc-handled-backends | (RCS CVS SVN SCCS Arch MCVS) | Version control systems used with the vc package. The order in which they appear in this list controls the order in which they will be attempted when working with a new file. | vc-display-status | t | If non-nil, display the version number and the locked state in the mode line. | vc-keep-workfiles | t | If non-nil, do not delete work files after you register changes with the version control system. | vc-mistrust-permissions | nil | If non-nil, do not assume that a file's owner ID and permission flags reflect version control system's idea of file's ownership and permission; get this information directly from version control system. | vc-suppress-confirm | nil | If non-nil, do not ask for confirmation before performing version control actions. | vc-initial-comment | nil | If non-nil, prompt for an initial comment when registering a file with version control system. | vc-make-backup-files | nil | If non-nil, make standard Emacs backups of files registered with version control. | diff-switches | -c | Command-line switches used to control the format of change reports by VC as well as diff.el. |
Table A-2. Searching and replacing (Chapter 3) Variable | Default | Description |
---|
case-fold-search | t | If non-nil, treat upper- and lowercase letters as the same when searching. | case-replace | t | If non-nil, preserve the original case of letters when doing replaces (even if case-fold-search is on). | search-upper-case | 'not-yanks | If non-nil, uppercase letters in search strings defeat case-fold-search (i.e., force search to be case-sensitive). The symbol 'not-yanks means convert uppercase letters in yanked text to lowercase. | search-exit-option | t | If non-nil, any control character other than those defined in incremental search (Del, C-j, C-q, C-r, C-s, C-w, C-y) exits search. | search-highlight | t | If non-nil, highlight partial search matches. | query-replace-highlight | t | If non-nil, highlight matches in query-replace mode. |
Table A-3. Display (Chapter 2, Chapter 4) Variable | Default | Description |
---|
next-screen-context-lines | 2 | Retain this many lines when scrolling forward or backward by C-v or M-v. | scroll-step | 0 | When moving the cursor vertically out of the current window, scroll this many lines forward or backward. If 0, scroll enough lines to place the cursor at the center of the window after scrolling. | hscroll-step | 0 | When moving the cursor horizontally out of the current window, scroll this many columns left or right. If 0, scroll enough lines to place the cursor at the center of the window after scrolling. | tab-width | 8 | Width of tab stops; when set, it becomes local to the current buffer. | left-margin | 0 | Number of columns to indent when typing C-j in fundamental mode and text mode. | standard-indent | 4 | The number of columns to indent when using commands that increase or decrease margins. | truncate-lines | nil | If non-nil, do not wrap long lines; instead, truncate them and use arrows to show that the line continues off-screen. (Nongraphical versions of Emacs use $ instead to show where the line extends.) | truncate-partial-width-windows | t | If non-nil, truncate long lines (as above) in all windows that are not the full width of the display. | window-min-height | 4 | Minimum allowable height of windows (in lines). | window-min-width | 10 | Minimum allowable width of vertically split windows (in columns). | ctl-arrow | t | Non-nil means display control characters using ^X, where X is the letter being "controlled." Otherwise, use octal (base 8) ASCII notation for display for example, C-h appears as \010 in octal. | display-time-day-and-date | nil | If non-nil, M-x display-time Enter will also show the day and date. | line-number-mode | t | If non-nil, display the line number on the mode line. | line-number-display-limit | nil | Maximum size of buffer (in characters) for which line numbers should be displayed. A value of nil means no limit. | column-number-mode | nil | If non-nil, display the column number on the mode line. | visible-bell | nil | If non-nil, "flash" the screen instead of beeping when necessary. | track-eol | nil | If non-nil, whenever the cursor is at the end of the line, "stick" to the end of the line when moving the cursor up or down; otherwise, stay in the column where the cursor is. | blink-matching-paren | t | If non-nil, blink matching open parenthesis-type character when a corresponding close parenthesis is typed. | blink-matching-paren-distance | 25600 | Maximum number of characters to search through to find a matching open parenthesis character when a close parenthesis is typed. | blink-matching-delay | 1 | Number of seconds to pause when blinking a matching parenthesis. | echo-keystrokes | 1 | Echo prefixes for unfinished commands (e.g., C-) in minibuffer after user pauses for this many seconds; 0 means don't do echoing at all. | insert-default-directory | t | If non-nil, insert the current directory in the minibuffer when asking for a filename. | highlight-nonselected-windows | nil | If non-nil, highlight regions in windows other than the one currently selected; applies to GUI displays and others that support highlighting. | mouse-scroll-delay | 0.25 | Delay, in seconds, between screen scrolls when mouse is clicked and dragged from inside a window to beyond its borders. 0 means scroll as fast as possible. | mouse-scroll-min-lines | 1 | Scroll at least this many lines when mouse is clicked and dragged up or down beyond a window. |
Table A-4. Modes (Chapter 2, Chapter 5, Chapter 7) Variable | Default | Description |
---|
major-mode | fundamental-mode | Default mode for new buffers, unless set by virtue of the filename; when setting this variable, remember to precede the mode name with a single quote (the value is a symbol). | default-major-mode | fundamental-mode | The major mode for new buffers. | auto-mode-alist | (see Chapter 10) | List of associations between filenames and major modes. | interpreter-mode-alist | (see Chapter 9) | A list similar to auto-mode-alist, but for interpreted languages like Perl and Python. | indent-tabs-mode | t | If non-nil, allow the use of tab characters (as well as spaces) when indenting with C-j. This can really drive other developers mad, so you should probably disable this if you are working on a team. | dired-kept-versions | 2 | When cleaning a directory in Dired, keep this many versions of files. | dired-garbage-files-regexp | "\\.\\(?:aux\\|bak\\|dvi\\|log\\|orig\\|rej\\|toc\\)\\'" | Defines what file types are marked when selecting garbage files in Dired. | dired-listing-switches | "-al" | Options passed to the ls command for generating dired listings; should contain at least "-l". | dired-view-command-alist | (see Chapter 10) | Defines helper applications for Dired to invoke when opening certain types of files. | shell-file-name | varies | Filename of shell to run with functions that use one, such as list-directory, dired, and compile; taken from value of the Unix environment variable SHELL. | load-path | | List of directories to search for Lisp packages to load (see Chapter 11); often set to lisp subdirectory of directory where Emacs source code is installed on your system. | lpr-switches | nil | Defines command-line options to pass to lpr | calendar-week-start-day | 0 | Day defined as first day of the week. 0 is Sunday, 1 is Monday and so on. | picture-tab-characters | "!-~" | Characters interpreted as tab stops in picture mode if they appear on a line of their own. |
Table A-5. Text editing (Chapter 2, Chapter 3, Chapter 7, Chapter 8) Variable | Default | Description |
---|
sentence-end | (see Chapter 13) | Regular expression that matches ends of sentences. | sentence-end-double-space | t | If non-nil, do not treat single spaces after periods as ends of sentences. | paragraph-separate | "[ \t\f]*$" | Regular expression that matches beginnings of lines that separate paragraphs. | paragraph-start | "\f\\|[ \t]*$" | Regular expression that matches beginnings of lines that start or separate paragraphs. | page-delimiter | "^\f" | Regular expression that matches page breaks. | tex-default-mode | 'latex-mode | Mode to invoke when creating a file that could be either TEX or LATEX. | tex-run-command | "tex" | Character string used as a command to run in a subprocess on a file in mode. | latex-run-command | "latex" | String used as a command to run LATEX in a subprocess. | slitex-run-command | "slitex" | String used as a command to run SliTEX in a subprocess. | tex-dvi-print-command | "lpr -d" | Character string used as a command to print a file in tex mode with C-c C-p. | tex-alt-dvi-print-command | "lpr -d" | Command to direct .dvi files to a secondary printer. | tex-dvi-view-command | (if (eq window-system 'x) "xdvi" "dvi2tty * | cat -s") | Character string used as command to view a .dvi output file with C-c C-v; this expression yields xdvi on X Window systems, and a terminal-based alternative on others. This will only work if a Unix-like operating environment is present (such as Mac OS X, or Cygwin under Windows). | tex-offer-save | t | If non-nil, offer to save any unsaved buffers before running TEX. | tex-show-queue-command | "lpq" | Character string used as command to show the print queue with C-c C-q in Tex mode. | tex-directory | "." | Directory for TEX to put temporary files in; default is the current directory. | outline-regexp | "[*\f]+" | Regular expression that matches heading lines in outline mode. | outline-heading-end-regexp | "\n" | Regular expression that matches ends of heading lines in outline mode. | selective-display-ellipses | t | If t, display "..." in place of hidden text in outline mode; otherwise don't display anything. |
Table A-6. Programming (Chapter 9) Variable | Default | Description |
---|
compile-command | "make -k" | Default compilation command to use when compiling files via Emacs language modes. For example, to set ant as the default compilation tool, set this to "ant -emacs". | compilation-error-regexp-alist | (very long regular expression) | Regular expression designed to match error messages from all the compilers supported by Emacs. | comment-column | 32 | The column at which Emacs should insert comments. If code reaches this column, inserts comment one space beyond code. | comment-multi-line | nil | If t, continue comment on the next line. If nil, start a new comment on the next line. | c-style-alist | (see Chapter 9) | The code indentation style to use. Many are available; see Chapter 9. | debug-on-error | nil | If non-nil, emacs will go into debug mode when an error occurs in evaluating Lisp code. This can be handy when you're trying out a new function, but you probably want to read the debugger's help first to learn your way around. | c-macro-preprocessor | "/lib/cpp -C" | Defines which command is used to invoke C preprocessor when you type C-c C-e. | stack-trace-on-error | nil | If non-nil, Emacs displays a stack trace when an error occurs in evaluating Lisp code. This is useful in similar situations as debug-on-error and might give you enough information without having to learn the debugger interface. |
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 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. |
|