在使用 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 程序就没有这种情况了。
虽然这种方法解决了我的问题,但并没有找到问题真正的原因,因为在编辑其他程序源文件
时并没有出现这种问题。我自己水平有限,找到这个解决方法已经费了不少力气,就暂时满
足于这种解决方案了。期待高手给出真正的原因。