【发布时间】:2014-04-17 17:32:03
【问题描述】:
对于我的 c (c++) 文件,我将此对 cc 模式的引用添加到我的 .emacs 文件中:
(setq c-default-style "stroustrup"
c-basic-offset 4)
我想将其用于自定义扩展名“.dec”。我试图天真地调整这个SO question做
(defun my-decaf-mode ()
(when (and (stringp buffer-file-name)
(string-match "\\.dec\\'" buffer-file-name))
(setq c-default-style "stroustrup")
(c-basic-offset 4)) )
(add-hook 'find-file-hook 'my-decaf-mode)
这不起作用(我用 C 语言写了几行;不存在为文件提供 .c 扩展名的支持)。我还尝试了实际的自定义类型,如
(setq c-default-style "stroustrup"
c-basic-offset 4)) )
我怎样才能做到这一点?
【问题讨论】:
-
像这样的东西怎么样:
(add-to-list 'auto-mode-alist '("\\.dec\\'" . c-mode)),然后使用类似c-mode-hook的东西——例如,(add-hook 'c-mode-hook 'my-decaf-mode)? -
@lawlist:感谢您的建议。你能把这个打出来吗?我不太确定用什么替换什么? :)(我的 emacs 定制技能还很初级)
-
您真的想创建自己的主模式,还是只想在
c-mode有*.dec扩展时添加一些额外的东西? -
@lawlist:我想要的是,只要 emacs 看到 .dec 扩展名,它就应该使用“stroustrup”类型的 cc-mode(另外一个规范是缩进大小为 4) )。 (如果任何其他模式更容易获得,“stroustrup”风格是可选的;比如说,“K&R”也不错)
-
@lawlist:酷!这似乎可以解决问题(也许它说将 .dec 文件视为 .c 文件,并且由于 .c 已经在我的 .emacs 文件中进行了修改,因此 .dec 被重定向到相同的修改)。我可以建议将您的第一条评论复制到答案中,以便我投票和接受吗?
标签: emacs elisp customization