用于flex和bison的Emacs模式,还是删除这些模式的自动缩进?

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

几个月前,我为Bison建立了第三方elisp模块,但当它的缩进破裂时,它永远不会被修复。 总之,这是一个糟糕的黑客攻击。

或者有什么办法可以关闭.l和.y文件的自动缩进(所以按下会做一个缩进)? 我怎样才能改变这个只是emacs的elisp设置?

elisp的一个很好和简明的指南也会很有帮助。 如果我有正确的文档,我不介意花几天时间写我自己的flex和bison模式。


Emacs主要根据文件扩展名选择主要模式。 .l是一个有争议的扩展:有些人将它用于lex,其他人用于lisp(还有一些其他用途较少)。 Emacs将.l与lisp关联,并将.lex与lex关联(为此使用C模式)。

如果您使用的.l文件比lisp更经常使用lex,则可以更改.l文件与.emacs的以下行相关联的内容:

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

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

-*-mode: c-mode-*-

这是一个更通用的功能,提供其他语法和其他可能性; 有关更多信息,请参阅Emacs手册中的“文件变量”。


如果您想开始使用Emacs Lisp,请阅读Emacs Lisp介绍(可能包含在您的Emacs或OS发行版中)。 一旦你熟练掌握了这门语言的基础知识,你可以参考Emacs Lisp参考手册中关于模式的章节。


附加提示:您可能会决定您需要的是Emacs的通用行为 - 当它没有任何特殊的文件格式模式时它会使用什么。 这就是所谓的emacs lingo中的基本模式:所以你可以在Mx fundamental-mode ,或者在文件的第一行放置-*- mode: fundamental -*-或者自定义自动模式alist :

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

另一个尝试可能是indented-text-mode (可能禁用自动填充)。

链接地址: http://www.djcxy.com/p/47321.html

上一篇: Emacs modes for flex and bison, or removing auto indent for these modes?

下一篇: How to connect to JMX agent using python