【问题标题】:How to set syntax highlighting on for Emacs files如何为 Emacs 文件设置语法高亮
【发布时间】:2009-06-26 22:38:28
【问题描述】:

我的 .emacs 对我来说就像一个路线图,我从中获取许多文件。 它们的扩展名是 .emacs:例如,

 fileName.emacs

问题是只有 ~/.emacs 有语法高亮。

我希望所有以 .emacs 结尾的源文件的语法突出显示。

如何将语法高亮显示在所有来源的 .emacs 文件上?

【问题讨论】:

    标签: emacs syntax-highlighting elisp


    【解决方案1】:

    是的。我假设这些是 lisp 文件,因此您需要 Emacs 在查看这些文件时自动处于 lisp 模式。有两种解决方案:

    1. 最简单的方法是将扩展名更改为.el。默认情况下,它们以 lisp 模式打开。

    2. 如果出于某种原因您真的想使用 .emacs 扩展名,您需要将其添加到您的 ~/.emacs 文件中的某处:

      (setq auto-mode-alist 
            (append '((".*\\.emacs\\'" . lisp-mode))
                    auto-mode-alist))
      

    auto-mode-alist 是 Emacs 用来确定要使用的主要模式的列表。每一项都是一个列表,第一项是 Emacs 用于测试文件名的 Emacs 正则表达式,如果为真,则使用第三项中给出的模式。

    (不知道第二个是什么,没用过。)

    不过我强烈建议选项 1。

    【讨论】:

    • @masi 在接受的答案中,您可能应该使用 emacs-lisp-mode 而不是 lisp-mode,因为所有这些文件都将使用 elisp,而不是 lisp。区别很小,可能没有什么重大意义,但是 emacs 人一定是出于某种原因编写了一个单独的 emacs-lisp-mode 对吧?
    • “第二项”是用于制作文字引用的缺点的符号。缺点是列表的低级构建块。 '(a . (b . nil)) (cons 'a (cons 'b nil)) '(a b) (list a b) 是相同文字列表的四种不同表达方式。
    【解决方案2】:

    您可以在文件的第一个非空行中设置模式:

    ;-*-Lisp-*-
    

    这是对 Lisp 的注释,但会导致 Emacs 在将其读入缓冲区时切换到 Lisp 模式 (reference)。

    【讨论】:

      猜你喜欢
      • 2014-09-05
      • 2010-10-26
      • 1970-01-01
      • 2011-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-19
      • 2018-12-01
      相关资源
      最近更新 更多