代码之家  ›  专栏  ›  技术社区  ›  Kizaru

flex和bison的Emacs模式,或者删除这些模式的自动缩进?

  •  7
  • Kizaru  · 技术社区  · 14 年前

    Emacs在Flex和Bison中处理自动缩进的能力很差。实际上,它似乎不支持flex模式。那么,emacs用户如何处理这些问题呢?我喜欢VIm,但我不想切换,因为我在Emacs中更快更舒服。

    几个月前,我为Bison开发了一个第三方elisp模块,但当它的凹痕破裂时,它就再也无法修复了。简而言之,这是一次糟糕的黑客攻击。

    或者有没有一种方法可以关闭.l和.y文件的自动缩进(所以按一下就可以缩进一次)?我怎样才能只为emacs更改这个elisp设置?

    2 回复  |  直到 11 年前
        1
  •  3
  •   Gilles 'SO- stop being evil'    14 年前

    Emacs主要根据文件扩展名选择主模式。 .l 是一个有争议的扩展:有些人将其用于lex,有些人将其用于lisp(还有一些其他罕见的用法)。Emacs联营公司 l.公司 用lisp,和 .lex 使用lex(它使用C模式)。

    l.公司 您使用的文件通常是lex而不是lisp,您可以更改 文件与您的 .emacs :

    (add-to-list 'auto-mode-alist '("\\.l\\'" . c-mode))
    

    您还可以在文件中声明您希望Emacs在打开文件时使用的模式。将以下代码段放在文件的第一行(通常在注释中):

    -*-mode: c-mode-*-
    


    如果您想开始使用emacslisp,请阅读 Emacs Lisp intro (可能包含在您的Emacs或OS发行版中)。一旦您熟悉了该语言的基本知识,就可以转到emacslisp参考手册中有关模式的章节。

        2
  •  1
  •   zwol    14 年前

    附加提示:您可能会决定您想要的是Emacs的通用行为——当Emacs没有任何文件格式的特殊模式时它所使用的行为。这在emacs行话中被称为基本模式:因此您可以用 M-x fundamental-mode ,或 -*- mode: fundamental -*- 在文件的第一行,或自定义自动模式,如下所示:

    (add-to-list 'auto-mode-alist '("\\.l\\'" . fundamental-mode))
    

    indented-text-mode