Emacs中perl的语法高亮显示已被破坏,是否有修复?
我是一个perl程序员和一个新的emacs用户.我在
Windows下,使用cperl-mode编辑perl. Emacs版本是24.2.1.这是一个包含一些示例代码的屏幕截图:
http://breqwas.net/dropbox/perlsyn_emacs.png >明显的错误:它突出了注释中的(a =>“b”)样式列表中的数组,哈希和非引用的文字值 我可以坚持下去,但我希望能很好地解释“破碎”这个词. 然后我学会了神奇的C-u C-x =键组合,其中显示了光标下文本的文本属性,希望能够制作出更好的自己的着色方案.在这一点上,它开始变得更没意义了. “print”具有cperl-nonoverridable-face. “die”有font-lock-keyword-face.同时,两者都是功能,可以(通常是)被覆盖. “system”有font-lock-type-face.为什么?函数声明有font-lock-function-name-face – 这没关系,但“use”的参数也是如此.为什么?函数调用和标量根本没有face属性,无法突出显示.为什么?等等,再次,我可以继续前进. 有办法解决所有这些问题吗?是否有一些配置,我可以将词法单位重新映射到其他一些字体,或其他一些方法,使语法高亮不那么疯狂? 为了避免“perl is notarsarsible”的讨论,这里是我正在迁移的编辑器的屏幕截图,使用完全相同的代码:http://breqwas.net/dropbox/perlsyn_pn.png.看起来更合理. 更新:到现在为止(在此问这个问题后3周)我没有找到治疗方法.所有使用emacs的perl程序员我都知道忽略了这些问题.似乎不存在更好的用于emacs的perl荧光笔.阅读cperl-mode docs提供了一些解释(现在各种元素的面孔选择似乎不那么疯狂),但没有提供任何答案.我写了一封给cperl-mode maintainer的电子邮件,里面有这些问题,还有一些挖掘我做了,但没有回复. 是的,你做对了:似乎emacs社区无法在25年内制作一个好的perl语法,perl就是这样.那是一个悲伤的故事. 解决方法
您可能想尝试perl-mode而不是cperl-mode.如果您发现其中缺少功能,我们可以将它们从cperl模式移植而不会有太多麻烦. perl-mode的突出显示不像cperl-mode那样华而不实,但它确实解决了你指出的一些问题.
至于“声明时突出显示,而不是在被调用时”这是因为Emacs通常以这种方式突出显示.我发现突出变量和函数用途没有任何好处.我在perl模式中一直强调变量用法,主要是因为它之前存在,我不想处理心怀不满的用户.此外,在Perl的情况下,突出变量声明和使用与perl-mode相同可能更容易,而cperl-mode必须做额外的工作来区分这两种情况. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |