次: , 上: Comments


20.7.1 コメント用コマンド

コメント用コマンドはコメントの挿入、削除、および位置揃えを行います。

M-;
コメントの挿入/位置揃えを行う(indent-for-comment)。
C-x ;
コメントの桁位置を設定する(set-comment-column)。
C-u - C-x ;
現在行のコメントをキルする(kill-comment)。
C-M-j
<RET>に続けて、コメントの挿入/位置揃えを行う (indent-new-comment-line)。
M-x comment-region
リージョン内の各行に対して、コメント区切りを追加/削除する。

コメントを挿入するコマンドはM-;indent-for-comment)です。 行にコメントがなければ、新規にコメントを作成して、 コメント桁位置と呼ばれる特定の桁に置きます。 コメントを作成する際には、Emacsが正しいと信じるコメント開始文字列 (comment-startの値。下記参照)を挿入します。 ポイントはその文字列の直後に置かれます。 コードのテキストがコメント桁位置を越えているときには、 適当な境界に字下げします(通常は少なくとも空白1文字)。 メジャーモードでコメント終了文字列が指定されていれば、 構文を正しく保つために、ポイントの直後にその文字列を挿入します。

M-;は、既存のコメントを位置揃えするためにも使えます。 行にコメント開始文字列がすでに含まれていれば、 その文字列の直後にポイントを移動してから、適切な位置に字下げします。 例外として、0桁目から始まるコメントは動かしません。

特定の文脈における、ある種のコメントの字下げには特殊な規則を持つ メジャーモードもあります。 たとえば、Lispのコードでは、セミコロン2つで始まるコメントは、 コメント桁位置に揃えるのでなく、コードであるかのように字下げされます。 また、セミコロン3つで始まるコメントは左端に置くと仮定されます。 Emacsはこれらの慣習を理解していて、 セミコロン2つのコメントは<TAB>で字下げし、 セミコロン3つのコメントは字下げをまったく変更しません。

     ;; This function is just an example
     ;;; Here either two or three semicolons are appropriate.
     (defun foo (x)
     ;;; And now, the first part of the function:
       ;; The following line adds one.
       (1+ x))           ; This line adds one.

Cのコードでは、コメントのまえに白文字しかない場合には、 そのコメントをコードのように字下げします。

既存のコメントの位置が適切に揃えられている場合でも、 コメント開始直後の位置にすぐに移動するにはM-;が便利です。

C-u - C-x ;kill-comment)は、 現在行にコメントがあれば、それをキルします。 コメント開始文字列のまえにある字下げもキルします。 コメントと思われるものが何もなければ、何もしません。 他の行にコメントを再挿入するには、 その行の末尾に移動してからC-yと打って、 さらに、位置を再調整するためにM-;と打ちます。 C-u - C-x ;はひとまとまりのキーではなく、 負の引数を指定したC-x ;set-comment-column)で あることに注意しましょう。 このコマンドは、負の引数を受け取ると、 kill-commentを呼ぶようにプログラムされています。 kill-commentは、望むならばキーに直接バインドできる通常のコマンドです。