Auto-Mode Customization

The tables in Appendix D list several major modes that are automatically invoked when you visit a file whose name ends in the appropriate suffix. Look for “suffix” in the right-hand columns of the tables to see many of the associations between filename suffixes and major modes that Emacs sets up by default. These associations are contained in the special Emacs variable auto-mode-alist. Auto-mode-alist is a list of pairs (regexp . mode), where regexp is a regular expression (see Chapter 3 and Chapter 13) and mode is the name of a function that invokes a major mode. When Emacs visits a file, it searches this list (from the beginning) for a match to the regular expression. If it finds one, it runs the associated mode function. Notice that any part of a file’s name--not just its suffix—can actually be associated with a major mode.

You can add your own associations to auto-mode-alist, although the syntax is weird if you are not used to LISP (see Chapter 13 for the gory details). If you are programming in the Ada language, and your Ada compiler expects files with suffix .a (some compilers expect .ada), get Emacs to put Ada files in Ada mode whenever you visit them by putting the following line in your .emacs file:

(setq auto-mode-alist (cons '("\\.a$" . ada-mode) auto-mode-alist))

Make sure you include the single quote after the term cons and the dot between "\\.a$" and ada-mode. The notation '(x . y) is just LISP syntax for “make a pair out of x and y.” The string ...

Get Learning GNU Emacs, Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.