【问题标题】:Can I use cperl-mode with perl-mode colorization?我可以将 cperl 模式与 perl 模式着色一起使用吗?
【发布时间】:2008-11-06 23:29:46
【问题描述】:

Emacs cperl-mode 似乎比 perl-mode 更容易混淆,但 Skittles 效果让我无法使用它。有没有人有或知道一个 .emacs 块的示例,它导致 cperl-mode 使用 perl-mode 的着色,理想情况下以足够可读的形式,我可以返回并一次打开一个元素的默认颜色直到我找到我喜欢的东西?

特别是对于一些我觉得很不可读的内置函数,有一种可怕的浅绿色阴影,我更喜欢我的变量没有前导 $$$ 以及与变量名一起染成红色。其余大部分只是分散注意力。

【问题讨论】:

    标签: perl emacs cperl-mode


    【解决方案1】:

    按 M-x customize-group RET cperl-faces RET 并根据自己的喜好更改颜色。

    【讨论】:

    • 这并不能完全涵盖所有内容,例如允许我防止前导字形着色,但看起来这已经接近了,谢谢。
    【解决方案2】:

    对于颜色主题,问题仅限于数组和哈希 - 事实证明,这是因为 cperl-mode 将这些面定义为粗体,颜色主题似乎不会影响(Solarized 没有' t)。

    在 Mac OS 上的 Emacs 23.3 中,以下内容将颜色恢复为颜色主题定义它们的方式:

    (custom-set-faces
     '(cperl-array-face ((t (:weight normal))))
     '(cperl-hash-face ((t (:weight normal))))
    )
    

    【讨论】:

      【解决方案3】:

      您还可以通过使用 perl-mode 覆盖字体锁定设置来使用“真正的”perl-mode 着色。

      (require 'perl-mode)
      
      (add-hook 'cperl-mode-hook
                (lambda ()
                  (setq font-lock-defaults
                        '((perl-font-lock-keywords perl-font-lock-keywords-1 perl-font-lock-keywords-2)
                          nil nil ((?\_ . "w")) nil
                          (font-lock-syntactic-face-function . perl-font-lock-syntactic-face-function)))
                  (font-lock-refresh-defaults)))
      

      【讨论】:

        【解决方案4】:

        如果您不喜欢特定的默认颜色,可以更改 color theme

        【讨论】:

        • 这没有帮助。 ColorTheme 似乎改变了所有颜色除了 cperl-mode 使用的颜色,并且它不会改变前导字形的颜色,而且它似乎不是特别可配置的。但是感谢您的想法。
        • cperl-mode 的问题似乎完全局限于数组和散列 - 至少当我尝试使用 Solarize (ethanschoonover.com/solarized) 时,这是唯一没有覆盖颜色的区域。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-05
        • 1970-01-01
        • 2023-01-03
        • 1970-01-01
        • 2019-01-06
        • 1970-01-01
        相关资源
        最近更新 更多