如何防止在Emacs cperl模式下移动大括号?

时间:2011-03-03 20:35:42

标签: perl emacs cperl-mode

我正在使用GNU Emacs 22.2.1和cperl 5.23。

我有这样的perl代码:

sub foo
{
    if($x)
    {
      print "x";
    }
    else
    {
      print "y";
    }
}

我想将代码重新加入2空格缩进。但是当我在这段代码上运行cperl-indent-region时,我得到了:

sub foo
  {
    if ($x) {
      print "x";
    } else {
      print "y";
    }
  }
  1. 如何将外支撑保持在左边距/列0?
  2. 如何阻止if和else的开括号向上移动到上一行?

1 个答案:

答案 0 :(得分:6)

我相信您正在寻找的定制是:

(setq cperl-extra-newline-before-brace t
      cperl-brace-offset              -2
      cperl-merge-trailing-else        nil)

您可以使用M-x customize-group <ENTER> cperl <ENTER>自定义cperl模式。缩进变量位于Cperl Indentation Details子组中。