在使用 Spacemacs 编辑 go 源程序时出现了一个问题:每次在插入花括号后敲RET键后,
下一行都不能正确地缩进,光标会在第 0 列的位置,下面会提示auto trimmed 1 chars,
且此时按TAB键并不能使缩进正确,而是一直提示auto trimmed 1 chars,将光标移走
然后再移回之后再按TAB就可以正常缩进。
在编辑其他程序源文件时并没有出现这个现象。
尝试了很多方法试图找到问题所在,但都不成功,最后想到了使用profiler。使用命令profiler-start开始统计(我只统计了 cpu),然后在 go 源文件中花括号后键入RET,
之后疯狂按TAB。然后使用命令profiler-report查看统计信息,最后别忘了使用profiler-stop停止统计。
我得到的数据如下:
1  | + command-execute 477 71%  | 
注意到其中的clean-aindent--trim-last-point很可疑,通过查询找到了clean-aindent-mode,将其放置在dotspacemacs-excluded-packages里。重启后
Spacemacs 会自动删除这个 package。再编辑 go 程序就没有这种情况了。
虽然这种方法解决了我的问题,但并没有找到问题真正的原因,因为在编辑其他程序源文件
时并没有出现这种问题。我自己水平有限,找到这个解决方法已经费了不少力气,就暂时满
足于这种解决方案了。期待高手给出真正的原因。