【问题标题】:How do I stop auto-formatting in emacs cperl mode?如何在 emacs cperl 模式下停止自动格式化?
【发布时间】:2009-02-27 00:17:54
【问题描述】:

当我在 cperl-mode 中做 indent-region

如果 ($x) { 下一个; }

Emacs 将其重新格式化为:

如果($x){ 下一个; }

我怎样才能让它停止这样做?

注意:问题最初是说这种重新格式化是在拉动时发生的。我也将设置拉到缩进区域。

【问题讨论】:

  • 我不认为 cperl-mode 正在这样做,除非您通过鼠标中键“猛拉”粘贴到 xterm 中。在这种情况下,请通过自定义关闭 cperl-hairy,然后重试。

标签: perl emacs cperl-mode


【解决方案1】:
(setq cperl-break-one-line-blocks-when-indent nil)

【讨论】:

    【解决方案2】:

    假设您也不希望在键入此类代码时自动格式化,只需将 {} 的绑定更改为 self-insert-command 而不是 perl-electric-terminator

    【讨论】:

    • 错字? ?不可能的。 ;-) 谢谢!
    【解决方案3】:

    我在 cperl 模式下找不到任何可以做到这一点的东西。尝试在没有自定义的情况下启动 emacs:

    $ emacs -q
    

    然后在 scratch 缓冲区中打开 cperl-mode:

    M-x cperl-mode
    

    粘贴您的文字;它应该看起来像原来的(即全部在一行上)。然后开始自定义 cperl-mode:

    M-x customize-group<RET>cperl<RET>
    

    仅为当前会话单独设置每个变量,并尝试在每个设置之间粘贴。如果您突然发现您所看到的行为,您就有了进一步观察的起点(它可能是多种选择的组合)。

    如果您获得了完全定制的 cperl 并且它仍然没有“错误地”运行,那么您需要开始查看其他软件包可能导致它的原因。可能需要一段时间......

    【讨论】:

      【解决方案4】:

      这对我来说行不通,我只是在 Perl 菜单下的 Toggle... 子菜单中尝试了各种设置。除了 Cperl 模式之外,还有什么其他的东西会导致这种情况发生吗?

      【讨论】:

        【解决方案5】:

        听起来好像我在给出一个逃避的答案,为什么不这样做呢?

        next if $x;
        

        同样的代码,同样的效果,和可读性一样(至少对我而言),但我敢打赌 emacs 不会尝试重新格式化它。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-10-29
          • 1970-01-01
          • 2017-11-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多