这是 origami 灵的样子:
![image](https://emacs-china.org/uploads/default/original/3X/2/d/2ddc0e80aaaafe880ef4b6ffe7695ce1176af008.png)
这是 origami 不灵的样子:
真的很随机, 感觉也没干啥, 突然就不灵了, revert buffer 也没用, 而且如果不灵, 是所有 buffer 都不灵, 搞不懂该怎么让它恢复工作.
平台: windows wsl2 ubuntu 22.04, snap emacs 29.1
配置:
(add-to-list 'origami-parser-alist `(brace-vert . ,(origami-markers-parser "{||" "||}")))
发生什么模式下: org-mode 下.因为我在 .dir-locals.el 中设置了:
((nil . (
(mode . origami)
(origami-fold-style . brace-vert)
))
)
表现出来很随机, 上午还不行, 下午又行了.
我怀疑是不是 (setq org-element-use-cache nil)
使得上午还不能 work 的下午就可以 work 了. 有待观察.
yqu212
4
你把git仓库放在syncthing这样的同步工具下面了?
origami 生效之前会全文扫描一遍,以生成折叠位置信息。
从截图看,应该是缓存信息跟实际的文件脱节了,所以折叠位置出现了偏差。清除缓存可以解决问题,造成问题的原因有可能是你用第三方工具修改了文件,也可能是 origami 没有及时更新缓存,或更新缓存的时候出错了。
好像没有, 我是通过 rsync 到 onedrive 同步的. 为啥这么说?
应该不是因为第三方工具, 因为我不太用第三方工具, 而且当一个 buffer 出错时, 通常其它 buffer 也会一起出错, 感觉很可能和缓存有关.
yqu212
8
因为从报错信息上看报错的是git,这种错多半是因为.git被外部工具修改了。
哦哦抱歉我没说清楚, 那不是报错, 那是笔记内容[捂脸]
虽然设置了 (setq org-element-use-cache nil)
, 不过这个问题现在又出现了.
可以試試看 ts-fold.
(抱歉一直推自己的插件
; 但真的很好用!)
1 个赞
是的, org-mode 下的 origami (但暂时还处于没出问题的时候, 不确定其它 mode 是否也有问题)
是 origami 的缓存出了问题,不是 org mode。
基于语法的代码折叠确实是Emacs的短板,目前看 ts-fold 是比较好的解决方案。
@jcs090218 这个能上melpa吗?