之前 Doom Emacs 的 Projectile 总是会试图给整个 $HOME 路径下的所有文件建立缓存。后来我精简配置,将一些配置注释掉之后,Projectile 的行为恢复正常。
怎么知道自己的某一个配置,导致插件行为的改变?让它的行为不符合自己的预期?
之前 Doom Emacs 的 Projectile 总是会试图给整个 $HOME 路径下的所有文件建立缓存。后来我精简配置,将一些配置注释掉之后,Projectile 的行为恢复正常。
怎么知道自己的某一个配置,导致插件行为的改变?让它的行为不符合自己的预期?
我一般是先最小化配置,然后二分法。
具体就是,假如 a 包的行为不符合预期,那就删掉/注释掉所有配置,或者使用 emacs -q
启动之后,仅安装 a 包,看看是否符合预期。
如果不符合预期,那就是 a 包的问题,并不是自己配置的问题。
如果符合预期,那就加一半自己的配置回来,看是否符合预期,如果仍然符合预期就再加剩下的一半配置回来,直到出现问题,然后再减少刚才加的一半配置,重复这个过程直到找到影响的地方。
有些极端情况是有多个包同时干扰,可能需要多次重复上述步骤。虽然累点,但最终一定可以不过脑子的找到问题所在。
配置和安装的包都放到 git 里,每次修改配置就 commit 一次,每次更新包也 commit 一次,出问题就按 commit 二分测试。就算暂时找不出来哪个包有问题也可以快速回退到一个可用的版本。
完全不知道的话,就是将整个项目模块注释,然后类似二分的方法来判断是否存在问题
二分法有时候比较诡异,不知道是不是 build 没有重新 build 的问题还是啥,会出现情况不一致的问题。
二分法要删除 elc