Могу ли я использовать 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)))
Вы можете изменить цветовую тему, если вам не нравятся определенные цвета по умолчанию.