【发布时间】:2012-03-02 20:42:28
【问题描述】:
我正在尝试将 CPerl 模式与 emacs 中的 Perl 源文件相关联(CentOS 6 上为 23.1.1)。
如果我在 .emacs 中包含以下行
(defalias 'perl-mode 'cperl-mode)
然后在打开 Perl 源文件时会加载 CPerl 模式。
然而,下面这行,看起来 ti 应该可以工作,却导致 Perl 模式被加载:
(add-to-list 'auto-mode-alist '("\\.p[lm]$" . cperl-mode))
没有错误消息 - 它只是加载 Perl 模式而不是 CPerl 模式。
我问的原因是我在使用 cperl-set-style 时遇到了一些问题(在 emacs 菜单中工作,但如果我将它作为 CPerl 模式的钩子添加到 CPerl 模式时,它被别名为 perl-mode ) 我想尝试直接加载 CPerl 模式。
我在 .emacs 中用于将缩进样式设置为 CPerl 模式的钩子的语句是
(eval-after-load "cperl-mode"
add-hook 'cperl-mode-hook (lambda() (cperl-set-style 'C++))))
如果没有加载 CPerl 模式(当我使用 auto-mode-alist 方法时)并且当我通过别名加载 CPerl 模式时没有做正确的事情(似乎使用 GNU 缩进样式),这显然没有效果Perl 模式。
【问题讨论】:
-
我假设您在
add-hook之前忘记了'(。 FWIW,您不需要在eval-after-load中包含add-hook语句,尽管它也不应该受到伤害。
标签: emacs cperl-mode