2011-03-03 63 views
1

我使用GNU Emacs 22.2.1和cperl 5.23。如何避免使用Emacs cperl模式移動大括號?

我有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的前括號移動到前一行?

回答

5

我相信你要找的定製是:

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

您可以自定義cperl模式M-x customize-group <ENTER> cperl <ENTER>。縮進變量位於Cperl Indentation Details子組中。

+0

完美,謝謝。 – bstpierre

+0

不知道自定義組。超級有用。謝謝。 – jjohn