3

特定のファイル グループ (ASCII で読み取り可能) を操作していますが、奇妙な拡張子名が付いています。これらすべてのコメント文字は#

行にコメントするたびに、ファイルの開閉サイクルごとにコメント文字を設定する必要があります。.emacs使用するコメント文字を知るためにファイルを設定する方法はありますか?

4

4 に答える 4

7

すべてのファイルは共通のディレクトリ ツリー内にありますか?

その場合、.dir-locals.elそのツリーの最上位に次のような名前のファイルを配置するだけです。

((fundamental-mode . ((comment-start . "#"))))

詳細については、次を参照してください。
C-hig (emacs) Directory Variables RET

(このアプローチには、Emacs を使用してそれらのファイルにアクセスする他のすべての人もファイルから恩恵を受けるというボーナスがあり.dir-locals.elます。)

そうでなければ、そのコメント文字を使用して単純な派生モードを作成し、それらすべてのファイル拡張子をそれに割り当てる傾向があります。これらのファイルをさまざまな場所で扱っている場合は、おそらく次の方法が適しています。

(define-derived-mode my-mode fundamental-mode "MyMode"
  "Comments start with `#'."
  (set (make-local-variable 'comment-start) "#"))

(add-to-list 'auto-mode-alist '("\\.\(foo\|bar\)\\'" . my-mode))

.fooこれにより、.bar拡張子が と のファイルがmy-modeコメント#文字で始まります。

于 2013-02-27T20:15:45.410 に答える
6

次の行を init.el のどこかに追加します。

(setq-default comment-start "# ")

これにより、「 # 」が基本モードのデフォルトのコメント文字列になりますが、これはとにかく妥当なデフォルトです。

于 2013-02-27T23:41:38.720 に答える
0

このコード スニペットを使用して、変数を調整して、正規表現 (一致するファイル名 (拡張子)) とコメント文字列のペアを含めることができます。また、 を設定したい場合はcomment-end、ペアを 3 つ組にして、それに応じて関数を調整します。

(defvar comment-based-on-extension-alist '((".el$" . "gg") (".txt$" . " >") (".odd$" . "$"))
  "alist of regexps and comment characters")

(defun setup-comment-based-on-extension ()
  (let ((alist comment-based-on-extension-alist))
    (while alist
      (when (string-match-p (caar alist) (buffer-file-name))
        (setq comment-start (cdar alist))
        (setq alist nil))
      (setq alist (cdr alist)))))
(add-hook 'find-file-hook 'setup-comment-based-on-extension)
于 2013-02-27T21:17:52.797 に答える
0

あなたができることは(setq comment-start "#")、それらのバッファの 1 つで毎回評価することです。これにより、リージョンで実行(comment-region)したときに、 と同様に機能することが保証されます(comment-dwim)

たとえば、キーバインドを関数としてバインドすることもできます。

編集:実験の後、Emacsで一度評価した後、基本モードではそのままになると思います。一度評価するだけでよいので、これは非常に便利です。

于 2013-02-27T19:55:35.837 に答える