Emacs中perl的语法高亮显示已被破坏,是否有修复?

Emacs中perl的语法高亮显示已被破坏,是否有修复?,第1张

概述我是一个perl程序员和一个新的emacs用户.我在 Windows下,使用cperl-mode编辑perl. Emacs版本是24.2.1.这是一个包含一些示例代码的屏幕截图: http://breqwas.net/dropbox/perlsyn_emacs.png >明显的错误:它突出了注释中的(a =>“b”)样式列表中的数组,哈希和非引用的文字值 >还有一个错误:由于非默认引号符号,它将正 我是一个perl程序员和一个新的emacs用户.我在 Windows下,使用cperl-mode编辑perl. Emacs版本是24.2.1.这是一个包含一些示例代码的屏幕截图:

http://breqwas.net/dropbox/perlsyn_emacs.png

>明显的错误:它突出了注释中的(a =>“b”)样式列表中的数组,哈希和非引用的文字值
>还有一个错误:由于非默认引号符号,它将正则表达式中的第一个单词作为数组高举
>不是一个BUG,但看起来很奇怪:它在使用时会突出显示数组和哈希值(即使在注释中,呵呵),但只有在声明时才会突出显示标量
>不是一个错误,但看起来很奇怪:与功能相同的故事:声明时突出显示,而不是在被调用时突出显示
>不是一个错误,但看起来很奇怪:为什么“打印”,“说”和“系统”有不同的颜色?

我可以坚持下去,但我希望能很好地解释“破碎”这个词.

然后我学会了神奇的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必须做额外的工作来区分这两种情况.

总结

以上是内存溢出为你收集整理的Emacs中perl的语法高亮显示已被破坏,是否有修复?全部内容,希望文章能够帮你解决Emacs中perl的语法高亮显示已被破坏,是否有修复?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1236269.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存