一千萬個為什麽

搜索

如何在cperl模式下得到右括號的正確縮進?

我在 cperl-mode 中正確對齊右括號時遇到問題。例如,考慮以下Perl代碼:

my $a = func1(
    Module::test()
  );

my $b = func2(
    test()
);

my $c = func3(
    Module::test(),
);

我們看到右括號沒有正確縮進 func1 ,但對於 func2func3 ,它是正確的。

cperl-mode-hook 中我有

(setq cperl-indent-level 4)
(setq cperl-indent-parens-as-block t)
(setq cperl-close-paren-offset -4)

這種行為的原因是什麽,如何為 func1 得到右括號的正確縮進?

最佳答案

看起來這種行為與 cperl-mode 的最新版本有關。我在Ubuntu 14.04上使用Emacs 24.4,以及安裝附帶的 cperl-mode/opt/emacs24.4/share/emacs/24.4/lisp/progmodes/cperl-mode .el.gz )是 cperl-mode 的6.1版。

然後我嘗試使用Emacs 24.4軟件包管理器( list-packages )從ELPA安裝 cperl-mode ,結果發現它給了我 cperl的5.23版本-mode ,它也正確縮進了右括號..

轉載註明原文: 如何在cperl模式下得到右括號的正確縮進?