Могу ли я использовать cperl-mode с раскрашиванием в perl-mode?

Cperl-режим Emacs, кажется, запутывается меньше, чем Perl-режим, но эффект Skittles делает эту вещь непригодной для меня. Кто-нибудь знает или знает пример блока.emacs, который заставляет cperl-mode использовать раскраску из perl-mode, в идеале в форме, удобной для чтения, чтобы я мог вернуться и включить цвета по умолчанию по одному элементу за раз пока я не достигну того, с чем мне удобно?

В частности, для некоторых встроенных функций используется ужасно светло-зеленый оттенок, который я нахожу довольно нечитабельным, и я предпочитаю, чтобы у моих переменных не было ведущих $ а также $$ и такие тонированные красным вместе с именем переменной. Большинство остальных просто отвлекают.

4 ответа

Решение

Нажмите Mx customize-group RET cperl-face RET и измените цвет по своему вкусу.

С цветными темами проблема ограничена массивами и хешами - и оказывается, что это потому, что cperl-mode определяет эти лица как жирный шрифт, на которые цветовые темы не влияют ( Solarized не делает).

В Emacs 23.3 в Mac OS следующее восстановило цвета в соответствии с тем, как их определяла цветовая тема:

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

Вы также можете использовать "настоящую" раскраску в режиме Perl, перезаписав настройки блокировки шрифта настройками 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)))

Вы можете изменить цветовую тему, если вам не нравятся определенные цвета по умолчанию.

Другие вопросы по тегам