コメント桁位置は、変数comment-column
に入っています。
この変数には明示的に値を設定できます。
あるいは、コマンド C-x ;(set-comment-column
)を使って、
ポイント位置の桁をコメント桁位置として設定できます。
C-u C-x ;は、バッファ内で現在行よりまえにある最後のコメントの桁位置を
コメント桁位置としてから、
M-;を行って現在行のコメントをまえのコメントの直下にくるように
位置を揃えます。
C-u - C-x ;は、前述のように
関数kill-comment
を実行することに注意してください。
変数comment-column
は、バッファごとの変数です。
つまり、通常の方法で設定すると、カレントバッファだけに影響しますが、
setq-default
でデフォルト値を変更できます。
See Locals。
多くのメジャーモードでは、この変数をカレントバッファ用に初期化します。
コメント用コマンドは、変数comment-start-skip
の正規表現に基づいて
コメントを認識します。
この正規表現が空文字列には一致しないようにしてください。
厳密にはコメント開始文字列よりも長く一致するかもしれません。
たとえば、Cモードではこの変数の値は"/\\*+ *"ですが、
これは ‘/*’のうしろの余分なアスタリスクと空白に一致します。
(Lispの構文では、文字列中に‘\’を含めるために‘\\’とする必要がある。
この‘\’は、最初のアスタリスクの正規表現における特別な
意味を抑制するために必要。
see Regexps。)
コメント用コマンドで新たなコメントを作ると、
コメントを始めるためにcomment-start
の値を挿入します。
また、ポイントの直後にはcomment-end
の値が挿入されて、
これから入力するテキストのあとに続くことになります。
Cモードでは、comment-start
の値は"/* "
、
comment-end
の値は" */"
です。
変数comment-multi-line
は、
C-M-j(indent-new-comment-line
)が
コメントの内側で使われたときの動作を制御します。
comment-multi-line
がnil
(通常の設定)ならば、
現在行のコメントを終了し、新たなコメントをつぎの行から始めます。
comment-multi-line
がnil
以外ならば、
現在行と同じコメントが継続されます。
つまり、現在行のコメントを終えず、新たな行にも開始文字列を挿入しません。
複数行にわたるコメントを許す言語では、
この変数に設定する値は好みの問題です。
変数comment-indent-function
には、
新たに挿入したコメントの字下げや
既存のコメントに桁を揃えるための字下げを計算する関数を
設定する必要があります。
この変数には、メジャーモードごとに異なった関数が設定されます。
この関数は引数なしで呼ばれますが、
コメントがあるときにはその開始位置にポイントを置いて、
新規コメントの挿入時には行末にポイントを置いて呼ばれます。
戻り値は、コメントを始めるべき桁位置です。
たとえば、Lispモードでは、この字下げ用フック関数は、
既存のコメントのセミコロンの個数と
まえの行のコードに基づいて計算を行います。