elisp: Basic Char Syntax

 
 2.3.3.1 Basic Char Syntax
 .........................
 
 Since characters are really integers, the printed representation of a
 character is a decimal number.  This is also a possible read syntax for
 a character, but writing characters that way in Lisp programs is not
 clear programming.  You should _always_ use the special read syntax
 formats that Emacs Lisp provides for characters.  These syntax formats
 start with a question mark.
 
    The usual read syntax for alphanumeric characters is a question mark
 followed by the character; thus, ‘?A’ for the character ‘A’, ‘?B’ for
 the character ‘B’, and ‘?a’ for the character ‘a’.
 
    For example:
 
      ?Q ⇒ 81     ?q ⇒ 113
 
    You can use the same syntax for punctuation characters, but it is
 often a good idea to add a ‘\’ so that the Emacs commands for editing
 Lisp code don’t get confused.  For example, ‘?\(’ is the way to write
 the open-paren character.  If the character is ‘\’, you _must_ use a
 second ‘\’ to quote it: ‘?\\’.
 
    You can express the characters control-g, backspace, tab, newline,
 vertical tab, formfeed, space, return, del, and escape as ‘?\a’, ‘?\b’,
 ‘?\t’, ‘?\n’, ‘?\v’, ‘?\f’, ‘?\s’, ‘?\r’, ‘?\d’, and ‘?\e’,
 respectively.  (‘?\s’ followed by a dash has a different meaning—it
 applies the Super modifier to the following character.)  Thus,
 
      ?\a ⇒ 7                 ; control-g, ‘C-g’
      ?\b ⇒ 8                 ; backspace, <BS>, ‘C-h’
      ?\t ⇒ 9                 ; tab, <TAB>, ‘C-i’
      ?\n ⇒ 10                ; newline, ‘C-j’
      ?\v ⇒ 11                ; vertical tab, ‘C-k’
      ?\f ⇒ 12                ; formfeed character, ‘C-l’
      ?\r ⇒ 13                ; carriage return, <RET>, ‘C-m’
      ?\e ⇒ 27                ; escape character, <ESC>, ‘C-[’
      ?\s ⇒ 32                ; space character, <SPC>
      ?\\ ⇒ 92                ; backslash character, ‘\’
      ?\d ⇒ 127               ; delete character, <DEL>
 
    These sequences which start with backslash are also known as “escape
 sequences”, because backslash plays the role of an escape character;
 this has nothing to do with the character <ESC>.  ‘\s’ is meant for use
 in character constants; in string constants, just write the space.
 
    A backslash is allowed, and harmless, preceding any character without
 a special escape meaning; thus, ‘?\+’ is equivalent to ‘?+’.  There is
 no reason to add a backslash before most characters.  However, you
 should add a backslash before any of the characters ‘()\|;'`"#.,’ to
 avoid confusing the Emacs commands for editing Lisp code.  You can also
 add a backslash before whitespace characters such as space, tab, newline
 and formfeed.  However, it is cleaner to use one of the easily readable
 escape sequences, such as ‘\t’ or ‘\s’, instead of an actual whitespace
 character such as a tab or a space.  (If you do write backslash followed
 by a space, you should write an extra space after the character constant
 to separate it from the following text.)