我使用某组文件(ASCII可读),但有奇怪的扩展名.所有这些中的评论字符是#
每次我评论行时,我都必须为每个文件 - 开 - 关循环设置注释字符.有没有办法我可以设置.emacs文件来知道使用哪个注释字符?
所有文件都存在于公共目录树中吗?
如果是这样,那么你可以简单地放置一个名为.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与#注释字符.
将以下行放在init.el中的某个位置:
(setq-default comment-start "# ")
Run Code Online (Sandbox Code Playgroud)
这将使"#"成为基本模式下的默认注释字符串,无论如何这是合理的默认值.