Previous: , Up: Comments   [Contents][Index]


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

Comment Commandsで示したように、M-jコマンドが行にコメントを追加するとき、バッファーローカルな変数comment-columnで指定された位置にコメントを配しようと試みます。このバッファーローカルな変数のデフォルト値、またはローカルな値は、通常の方法(Localsを参照してください)でセットできます。かわりにC-x ; (comment-set-column)とタイプすることにより、カレントバッファーのcomment-columnの値を、現在コメントがある列にセットすることができます。C-u C-x ;は、コメント列をそのバッファーのポイントの前にある最後のコメントにセットします。その後でM-;を行うことにより、カレント行のコメントを前のコメントに揃えることができます。

コメントコマンドは、変数comment-start-skipの値である正規表現にもとづいて、コメントを認識します。この正規表現がヌル文字列にマッチしないように気をつけてください。単語という言葉の厳格な意味から考えると、これはコメント開始区切りより長い文字列にマッチするかもしれません。たとえばCモードでの変数の値は"\\(//+\\|/\\*+\\)\\s *"で、これは‘/*’自身と、その後ろの余分なアスタリスクやスペースにマッチし、C++スタイルのコメントも許容します(文字列に‘\’を含む場合、Lisp構文では‘\\’と記述する必要があることに注意してください。これは最初のアスタリスクにたいして、正規表現においてアスタリスクがもつ特別な意味を打ち消すために必要です)。

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

変数comment-paddingは、コメントコマンドが、コメント区切りとコメントテキストの間を区切る文字列を指定します。デフォルトでは‘" "’、つまり1つのスペースが指定されます。かわりに数字を指定すると、これは指定した数のスペースになり、nilの場合、スペースは挿入されません。

変数comment-multi-lineは、M-jとAuto Fillモードがコメントをどのように複数行に継続するかを制御します。Multi-Line Commentsを参照してください。

変数comment-indent-functionは、新しく挿入されたコメント、または既存のコメントの位置揃え位置を計算するために呼び出される関数を指定します。これはメジャーモードごとに異なります。関数は引数なしで呼び出されますが、新しいコメントが挿入されるときはコメント開始位置のポイント、または行末のポイントで呼び出されます。この関数はコメントが開始されるべき列を返す必要があります。たとえばLispモードでは、インデントフック関数の決定は、既存のコメントがいくつのセミコロンで始まるかと、前の行のコードにもとづきます。