GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/elisp/Basic-Char-Syntax.html ・ emacs-doc.conao3.com

2.4.3.1 基本文字構文

文字は実質的に整数であるため、文字の表示形式は10進数となります。これは文字の読み込み構文としても使用可能ですが、Lispプログラムでこのように文字を記述するのは明快なプログラミングとは言えません。Emacs Lispが文字用に提供している専用の読み込み構文形式を、常に使用してください。これらの構文形式は疑問符で始まります。

英数字の一般的な表記法は、疑問符の後に文字を続ける形式です。したがって、文字 A には ‘?A’、文字 B には ‘?B’、文字 a には ‘?a’ と記述します。

例えば:

?Q ⇒ 81     ?q ⇒ 113

句読点文字にも同じ構文を使用できます。ただし、その句読点文字がLispにおいて特別な構文上の意味を持つ場合は、‘\’ でクォートする必要があります。例えば、開き括弧文字を記述するには ‘?\(’ を用います。同様に、文字が ‘\’ である場合は、それをクォートするために2つ目の ‘\’ を使用する必要があります:‘?\\’。

文字の control-g、backspace、tab、newline、vertical tab、formfeed、space、return、del、および escape は、それぞれ ‘?\a’、‘?\b’、‘?\t’、‘?\n’、‘?\v’、‘?\f’、‘?\s’、‘?\r’、‘?\d’、および ‘?\e’ と表現できます。(‘?\s’ の後にハイフンが続く場合は意味が異なり、後続の文字に Super 修飾子を適用します。)したがって、

?\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

バックスラッシュで始まるこれらのシーケンスは、バックスラッシュがエスケープ文字の役割を果たすため、エスケープシーケンスとも呼ばれます。これは文字 ESC とは無関係です。‘\s’ は文字定数での使用を想定しており、文字列定数では単にスペースを記述してください。

特別なエスケープ意味を持たない任意の文字の前には、バックスラッシュを記述しても問題ありません。したがって、‘?\+’ は ‘?+’ と等価です。ほとんどの文字の前にバックスラッシュを付加する必要はありません。ただし、Lispコードを編集するためのEmacsコマンドとの混同を避けるため、‘()[]\;"’ および ‘|'`#.,’ のいずれの文字の前にもバックスラッシュを付加する必要があります。また、コードを読む人の混乱を避けるため、前述のASCII文字に似たUnicode文字の前にもバックスラッシュを付加すべきです。Emacsでは、こうした注意喚起のため、‘‘’ のような、エスケープされていない混同しやすい一部の文字をハイライト表示します。さらに、スペースやタブなどの空白文字の前にもバックスラッシュを付加できます。ただし、タブやスペースといった実際の空白文字を使うよりも、‘\t’ や ‘\s’ のような読みやすいエスケープシーケンスを使用する方が簡潔です。(バックスラッシュの後にスペースを記述する場合は、文字定数の後にさらにスペースを記述して、後続のテキストと区切る必要があります。)