预处理器宏之后,Emacs C模式自动缩进失败
适用于
Windows的Emacs 24.2.
case TYPE_LONG: { <------- 65383 traceCodePath(20); tempLongVal = iterator_long(it); tempLongVal = 10; if (isBigEndian()) { swap_endian64(&tempLongValCon,&tempLongVal); traceCodePath(25); <------- 65601 if (i > 0) { <------ get weird from here /* ((substatement-open 65601)) */ } <------ this line aligns with the { below "case" /* ((block-close 65383)) */ } <------ the code afterward all align with { below "case" /* ((block-close 65383)) */ c模式缩进从一开始就运行良好,直到我添加了一些预处理器宏,#ifdef,#else,#end,之后,从代码中的某些点开始,所有后续缩进都变得混乱. 更奇怪的是,即使我再次删除那些预处理器宏,缩进也不会再次恢复. 希望有人能够找出原因,提前谢谢. 解决方法
这很可能与“bug#14133 24.2; c函数识别某些预处理器宏中断”有关:
http://lists.gnu.org/archive/html/bug-gnu-emacs/2013-04/msg00055.html 问题似乎是#之前的空格.我注意到这一点的方式是C-M-a和C-M-e停止正常工作,并且自动缩进区域就像你的情况一样奇怪. 恢复对我来说也不一致. patch proposed by Alan Mackenzie解决了我的问题,你应该尝试一下. 您也可以尝试使用emacs 23,我无法重现此版本中的错误. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |