2010-07-17 63 views
1

我使用CPerl模式在Emacs中编辑我的Perl脚本。但Emacs功能indent-region在该模式下被打破。如果我有一个变量:Emacs CPerl模式:缩进区域中的错误

my $num_elements; 

成为

my $num_ elements; 

这很烦人,尤其是因为我习惯使用变量名下划线,并且我按了indent-region键盘快捷键所有的时间(实际上,基于它的自定义功能indent-whole-buffer),它已经是自动的。

有谁知道如何解决它?

我用这Emacs的:

GNU Emacs 21.4.1 (x86_64-redhat-linux-gnu, X toolkit, Xaw3d scroll bars) 
    of 2007-12-10 on hs20-bc1-5.build.redhat.com 

UPDATE:其实这发生在一个foreach(或类似)后,才:

foreach my $num_elements (1,2) {} 

变为:

foreach my $num_ elements (1,2) {} 
+0

你可以添加你的版本号吗?它可以在我的GNU Emacs 23.1.1(i686-pc-linux-gnu,GTK +版本2.16.6)中运行。 – Svante 2010-07-17 19:01:59

+0

@Svante:好的,在上面添加它。 – Frank 2010-07-17 19:03:27

回答

4

更新cperl-mode的版本可用。 official versionan unofficial version that's aware of 5.10 and Moose。更新到其中一个应该可以解决您的问题。

M-x describe-variable cperl-version将显示您正在使用的cperl模式的版本。

+0

谢谢。我想我将不得不安装最新版本的cperl(虽然我可能不会这样,因为这听起来像是一件烦人的事情,要花时间...)顺便说一下,我的Emacs版本没有命令'describe-version' 。 – Frank 2010-07-17 20:29:54

+0

对不起,'describe-variable'。安装cperl-mode的新副本很容易。在'〜/ .emacs'中放入'(add-to-list'load-path“〜/ emacs”),然后将'cperl-mode.el'放入'〜/ emacs'中。 – Schwern 2010-07-17 20:51:01

+0

谢谢!你说服了我,我安装了cperl 5.14,现在它已经修复了。 – Frank 2010-07-17 21:04:34