这个问题应该是有办法解决的
今天惊喜的发现用(hs-minor-mode)来展开折叠代码时清空页面内容,在撤销回到上一页时。代码的展开折叠状态是保持的。
发现这个情况后我就在org-mode里启用了hs-minor-mode,又以文学编程形式写了一段代码块测试,用hs-minor-mode折叠里面的代码,发现没有问题。不管我怎么(erase-buffer)改变内容后undo,代码展开折叠状态是保持的,就是org-mode本身的展开折叠不行。
另外我看了vsc等编辑器,代码展开折叠的状态并不能在页面内容被清空的情况下保持,但是emacs可以。