Emacs - 按文件扩展名设置注释字符

bof*_*fin 3 emacs commenting

我使用某组文件(ASCII可读),但有奇怪的扩展名.所有这些中的评论字符是#

每次我评论行时,我都必须为每个文件 - 开 - 关循环设置注释字符.有没有办法我可以设置.emacs文件来知道使用哪个注释字符?

phi*_*ils 7

所有文件都存在于公共目录树中吗?

如果是这样,那么你可以简单地放置一个名为.dir-locals.el该树顶层的文件,内容如下:

((fundamental-mode . ((comment-start . "#"))))
Run Code Online (Sandbox Code Playgroud)

有关详情,请阅读:
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))
Run Code Online (Sandbox Code Playgroud)

这将使文件与.foo.bar扩展开始my-mode#注释字符.


Chr*_*ett 6

将以下行放在init.el中的某个位置:

(setq-default comment-start "# ")
Run Code Online (Sandbox Code Playgroud)

这将使"#"成为基本模式下的默认注释字符串,无论如何这是合理的默认值.