各種編集モードに応じて、リージョンをコメントアウトしたり、 逆にリージョンのコメント記号を外したりします。 ftp://ftp.splode.com/pub/users/friedman/emacs-lisp/comment.elを移植しました。
comment-out-regionコマンドを C-c q というキーに割り当ててあるとします。
リージョンをコメントアウトするときは、 対象とするリージョンを指定したあと C-c q を入力します。
リージョンのコメント記号を削除するときは、 対象とするリージョンを指定したあと C-u C-c q と入力します。
前置引数として数値を指定した場合、つまりたとえば M-2 C-c q とか M-- 2 C-c q などのように入力すると、付加したり削除したりする記号の数が変わりま す。
初期状態で以下のメジャーモードに対応しています。
basic-mode, c++-mode, c-mode, csharp-mode, css-mode, java-mode, html-mode, idl-mode, LaTeX-mode, lisp-interaction-mode, lisp-mode, pascal-mode, perl-mode, sql-mode, text-mode, html+-mode, jscript-mode, php-mode, ruby-mode
対応する編集モードを追加するにはcomment-mode-alist 変数に必要な 設定を加えてください。以下に変数の中身を説明します。
comment-mode-alist変数はメジャーモードとコメント記号の関係を記述した もので、その値はリストのリストになっています。そして要素である各リストは メジャーモードを表すシンボル(buffer-modeの値)とある値の組からなります。 値の組は二種類あって、そのどちらか一方を記述します。
値の組の最初の値が nil か文字列の場合、それぞれの値の意味は次のよう になります。
値の組の最初の値が文字の場合、それぞれ値の意味は次のようになります。
モードに対応するエントリが無いときは、もしあれば、comment-start変数と comment-end変数に設定されている値を使います。
上のいずれにも該当しないときには、t というキーで登録されているエントリを 使います。
設定を追加する例: (add-hook '*comment-after-load-hook* (lambda () (push '(ed::bat-mode "REM ") comment-mode-alist)))
KaTeXの comment.l とこの comment.l の両方を強制的に読みこんでみてください。 .xyzzyに次のように記述します。パス名は環境に合わせて変更してください。
; (require "elisp") の後に (load "C:/path/to/site-lisp/katex/comment.lc") ; 未コンパイルならcomment.l (load "C:/path/to/site-lisp/comment.lc")