Next: Multi-Line Comments, Up: Comments [Contents][Index]
以下のコマンドは、コメントにたいして処理を行います:
カレント行にコメントを挿入、または位置揃えします。リージョンがアクティブのときは、かわりにリージョンをコメント化、または非コメント化します(comment-dwim
)。
カレント行のコメントをkillします(comment-kill
)。
コメント列をセットします(comment-set-column
)。
RETの後にコメントを挿入して位置揃えします(comment-indent-new-line
)。Multi-Line Commentsを参照してください。
リージョンのすべての行にたいして、コメント区切りを追加します。
コメントを挿入または位置揃えするコマンドは、M-; (comment-dwim
)です。単語“dwim”は、“Do
What I
Mean(私が言ったとおりにしてください)”の頭文字をとったものです。このコマンドは、コメントに関係する多くの異なる作業に使用できます。それは、このコマンドをどこで使うかという、状況に依存することを示します。
リージョンがアクティブ(Markを参照してください)の場合、M-;はリージョンのコメント区切りの追加と削除のどちらかを行います。リージョンの各行がすでにコメントの場合、それらのコメント区切りを削除することにより、それらの行を“非コメント化”します。そうでない場合は、リージョンのテキストにコメント区切りを追加します。
リージョンがアクティブのときにM-;に数引数を与えると、それは追加または削除するコメント区切りの数を指定します。正の引数nはn個の区切りを追加し、負の引数-nはn個の区切りを削除します。
リージョンが非アクティブで、カレント行にコメントがない場合、M-;はカレント行に新しいコメントを追加します。ブランク行(たとえば空または空白文字しか含まない)の場合、TABをタイプしたときにインデントされるのと同じ位置に、コメントがインデントされます(Basic Indentを参照してください)。非ブランク行の場合、コメントはその行の最後の非空白文字の後ろに配されます。通常Emacsは変数comment-column
(Options for Commentsを参照してください)で指定された列にコメントを配そうと試みますが、行が既にその列を越えている場合、コマンドはコメントを適切な位置
—
通常、非コメントのテキストと1つのスペースを空けてコメントを配します。どちらの場合も、Emacsはコメントの開始区切りの後ろにポイントを配すので、すぐにコメントのタイプを開始できます。
既存のコメントの位置揃えにもM-;を使用できます。行がすでにコメント開始文字列を含む場合、M-;は慣習的な位置にそれを位置揃えして、ポイントをコメント開始区切りの後ろに移動します。例外として、列0で始まるコメントは移動されません。既存のコメントがすでに正しく位置揃えされているときでも、M-;はコメントテキストの開始に直接移動するので有用です。
C-u M-;
(comment-dwim
にプレフィクス引数を指定)は、カレント行の任意のコメントを、それの前の空白文字と一緒にkillします。コメントはkillリングに保存されるので、他の行の行末に移動してC-yで挿入して、M-;でコメントの位置揃えをすることができます。M-x
comment-killとタイプしてもC-u
M-;と同じ効果を得ることができます(comment-dwim
はプレフィクス引数を与えられたとき、実際にサブルーチンとしてcomment-kill
を呼び出します)。
コマンドM-x comment-regionは、アクティブなリージョンにたいしてM-;を呼び出すのと等価ですが、このコマンドはマークが非アクティブのときでも、常にリージョンにたいして動作します。Cモードおよび関連するモードでは、このコマンドはC-c C-cにバインドされています。コマンドM-x uncomment-regionは、リージョンの各行を非コメント化します。数引数は、削除するコメント区切りの数を指定します(負の引数は、追加するコメント区切りの数を指定します)。
C-likeなモードにたいしては、変数c-indent-comment-alist
およびc-indent-comments-syntactically-p
をセットすることにより、M-;の正確な効果を設定できます。たとえば閉じ大カッコで終わる行では、M-;はcomment-column
ではなく、大カッコの後ろにスペースを1つ空けてコメントを配します。完全な詳細は、Comment
Commands in The CC Mode Manualを参照してください。