Emacs 24 C++自动缩进出了问题

18

我在Ubuntu 10.04上运行Emacs 24,在默认的c++环境下编写代码。有时候经过一段时间编码后,我的缩进引擎似乎会出现问题——按“tab”键使任何行位于行首。选择整个缓冲区将导致整个缓冲区取消缩进。此问题影响所有缓冲区,包括当前或后来打开的缓冲区。到目前为止,我找到的唯一修复方法是(非常不方便)重启Emacs。是否有其他方式重新启动我的缩进引擎?尝试加载不同的缩进样式无法解决该问题。


3
我注意到当我 #include 特定的头文件(尤其是模板重的头文件)时会出现这种情况;注释掉有问题的 #include 或重新启动 Emacs 似乎可以解决这个问题。我留下这条评论来帮助人们尝试隔离这个问题,以便能够得到适当的修复,因为 Emacs 24.3 仍然存在问题。如果我找到了确凿的东西,我会更新的。 - Cornstalks
总是不固定?这真的很烦人... - ArthurLambert
4个回答

4

3

我发现24.3版本也有相同的问题,但是我发现关闭并重新打开受影响的缓冲区也可以解决这个问题。


1
我也遇到了同样的问题...刚升级到emacs 24.3.1(xubuntu 14.04),有时候缩进引擎会完全出错。在早期版本的emacs中没有注意到这一点。关闭文件然后重新打开是一个解决方法。 - Darren Smith

2
这是我系统(Emacs 24.3 x86_64 Red Hat Linux)经常出现的问题,可能是 Emacs 24 引入的 bug,根据 event_jr 发布的 链接。我经常遇到这个问题,通常通过重新加载我正在使用的缓冲区来解决它:
M-x revert-buffer RET yes RET
这样,您不需要关闭缓冲区或 Emacs。

1
关闭和打开文件都可以正常工作,但是恢复缓冲区却不行(24.3.1 x86_64-pc-linux-gnu)。 - Kilian Brendel
对我来说,revert-buffer 不够用 :/ - log0

0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接