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

28.5.3 コメントを制御するオプション

コメントコマンドで述べたように、M-jコマンドで行にコメントを追加する際、バッファローカル変数comment-columnおよびcomment-fill-columnで指定された列(またはnilの場合はfill-columnの値。明示的なフィルコマンドを参照)の間にコメントを配置しようとします。これらのバッファローカル変数のローカル値またはデフォルト値は、通常の方法で設定できます(ローカル変数を参照)。あるいは、C-x ; (comment-set-column) と入力することで、現在のバッファにおけるcomment-columnの値を、ポイントが現在位置している列に設定できます。C-u C-x ;は、バッファ内でポイントより前にある最後のコメントに合わせてコメント列を設定し、その後M-;を実行して現在の行のコメントを前のコメントの下に揃えます。

コメントコマンドは、変数 comment-start-skip の値である正規表現に基づいてコメントを認識します。この正規表現が空文字列にマッチしないようにしてください。厳密な意味では、コメント開始デリミタ以外にもマッチする可能性があります。例えばCモードでは、変数の値が "/\\*+[ \t]*\\|//+[ \t]*" となり、‘/*’ 自体の後に続く余分なアスタリスクやスペースにもマッチし、C++スタイル(‘//’)のコメントも受け付けます。(なお、Lisp構文で文字列内に ‘\’ を含めるには ‘\\’ が必要であり、これにより正規表現構文における最初のアスタリスクの特殊な意味を否定できます。正規表現におけるバックスラッシュを参照してください。)

行コメントとブロックコメントの両方をサポートするモードでは、comment-start-line-regexp に行コメントの開始記号にのみ一致する正規表現を設定する必要があります。これにより、Emacs はこれら2種類のコメントを区別できるようになります。

コメントコマンドで新しいコメントを作成する際、開始コメント区切り文字として comment-start の値が挿入されます。また、終了コメント区切り文字として、ポイントの後に comment-end の値が挿入されます。例えば、Lispモードでは、comment-start は ‘";"’ であり、comment-end は ""(空文字列)です。Cモードでは、comment-start は "/* " であり、comment-end は " */" です。

変数 comment-padding は、コメントコマンドがコメント区切り文字とコメント本文の間に挿入すべき文字列を指定します。デフォルトの ‘" "’ は、単一のスペースを指定します。あるいは、値に数値を指定してその数だけのスペースを挿入したり、nil を指定してスペースを一切挿入しないようにしたりすることもできます。

変数 comment-multi-line は、M-j および自動入力モードが複数行にわたるコメントをどのように継続するかを制御します。複数行のコメントを参照してください。

変数 comment-indent-function には、新たに挿入されるコメントの位置合わせや、既存のコメントの位置合わせを行うために呼び出される関数が格納されている必要があります。この関数の設定方法は、主要なモードによって異なります。この関数は引数なしで呼び出されますが、ポイントはコメントの先頭、あるいは新規コメントを挿入する場合は行末に配置されます。関数は、コメントを開始すべき列番号を返す必要があります。例えば、デフォルトの関数では、既存のコメントが何文字分で始まっているかに基づいて判定を行います。

Emacsはまた、コメントを隣接する行に揃えようとします。これを上書きするには、関数が2つの(同一であってもよい)整数からなるコンスを返し、許容されるインデント範囲を示すことができます。