【问题标题】:Emacs CPerl mode: bug in indent-regionEmacs CPerl 模式:缩进区域中的错误
【发布时间】:2010-07-17 18:47:24
【问题描述】:

我在 Emacs 中编辑我的 Perl 脚本,使用 CPerl 模式。但是 Emacs 函数 indent-region 在该模式下被破坏了。如果我有一个变量:

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

更新:实际上这只发生在foreach(或类似的)之后:

foreach my $num_elements (1,2) {}

变成:

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

【问题讨论】:

  • 您能添加您的版本号吗?它适用于我的 GNU Emacs 23.1.1(i686-pc-linux-gnu,GTK+ 版本 2.16.6)。
  • @Svante:好的,添加到上面。

标签: perl emacs cperl-mode


【解决方案1】:

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

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

【讨论】:

  • 谢谢。我想我必须安装最新版本的 cperl(尽管我可能不会,因为这听起来像是一件烦人的事情……)顺便说一句,我的 Emacs 版本没有命令describe-version
  • 对不起,describe-variable。安装 cperl-mode 的新副本很容易。在~/.emacs 中放入(add-to-list 'load-path "~/emacs"),然后将cperl-mode.el 放入~/emacs
  • 谢谢!你说服了我,我安装了 cperl 5.14,现在已经修复了。
  • @dehmann 5.14 5 岁。还不如在以后使用最新的 else 时遇到一些其他已经修复的错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多