【问题标题】:emacs 24 c++ auto-indentation brokenemacs 24 c++ 自动缩进损坏
【发布时间】:2012-10-24 15:52:47
【问题描述】:

我在 Ubuntu 10.04 上运行 Emacs 24,在默认的 c++ 环境中编码 c++。每隔一段时间编码后,我的缩进引擎似乎就坏了——按“制表符”缩进会将任何行放在行首。选择整个缓冲区会导致整个缓冲区不缩进。此问题影响所有缓冲区,当前或以后打开。到目前为止,我发现修复它的唯一方法是重新启动 emacs 的(非常不方便的)步骤。还有其他方法可以重新启动我的缩进引擎吗?尝试加载不同的缩进样式并不能解决问题。

【问题讨论】:

  • 我注意到当我#include 特定标头(特别是模板重标头;注释掉有问题的#include 或重新启动 Emacs 似乎可以解决问题)时会发生这种情况。我在这里留下这条评论是为了帮助人们尝试隔离这个问题,以便正确修复它,因为 Emacs 24.3 仍然存在问题。如果我发现了一些结论性的东西,我会更新。
  • 总是不固定?真的很烦人……

标签: emacs indentation


【解决方案1】:

你读过这篇文章吗?

http://lists.gnu.org/archive/html/help-gnu-emacs/2012-09/msg00216.html

听起来你可以通过更新 cc-mode 来解决你的问题。

【讨论】:

    【解决方案2】:

    我在 24.3 中看到了相同的情况,但我发现关闭并重新打开受影响的缓冲区也可以解决问题。

    【讨论】:

    • same here ... 刚刚升级到 emacs 24.3.1 (xubuntu 14.04),我发现有时缩进引擎会完全错误。在早期的 emacs 上没有注意到这一点。关闭文件然后重新打开是一种解决方法。
    【解决方案3】:

    这是我的系统(Emacs 24.3 x86_64 Red Hat Linux)上反复出现的问题,从link posted by event_jr 判断可能是 Emacs 24 中引入的错误。 我经常遇到这个问题,通常通过重新加载我正在使用的任何缓冲区来解决它:

    M-x revert-buffer RET yes RET

    这样您就不必关闭缓冲区或 Emacs。

    【讨论】:

    • 关闭和打开文件有效,不幸的是,简单地恢复缓冲区不起作用(24.3.1 x86_64-pc-linux-gnu)。
    • 对我来说,revert-buffer 还不够:/
    【解决方案4】:

    我发现不平衡的预处理器指令(#ifdef 等)可能会导致这种行为

    【讨论】:

      猜你喜欢
      • 2011-06-03
      • 2014-04-07
      • 1970-01-01
      • 2011-02-12
      • 1970-01-01
      • 2013-03-24
      • 1970-01-01
      • 1970-01-01
      • 2014-07-29
      相关资源
      最近更新 更多