解决由于延迟启动插件造成的问题
缘起
在查看 Emacs-News 的时候突然看到 https://github.com/org-roam/org-roam/wiki/User-contributed-Tricks#showing-node-hierarchy 可以在 org-roam-node-find
时,同时查到node的层次结构。涉及的配置如下:
(cl-defmethod org-roam-node-hierarchy ((node org-roam-node))
(let ((level (org-roam-node-level node)))
(concat
(when (> level 0) (concat (org-roam-node-file-title node) " > "))
(when (> level 1) (concat (string-join (org-roam-node-olp node) " > ") " > "))
(org-roam-node-title node))))
(setq org-roam-node-display-template "${hierarchy:*} ${tags:20}")
我将上述配置贴到 scratch
里运行后,完美实现,然后我就将这个配置放到我的配置里去了。然后重启Emacs后就报错了。
解决
报错的内容是 没有找到 org-roam-node
。删除上述配置后,重启Emacs,直接运行上述配置,同样报错。很快了解到,造成这个问题的原因是这个配置要在 org-roam
运行后,再运行。但是因为 use-package
我的设置是都 defer 了。所以在启动Emacs的时候并不会启动roam。
造成这个问题的原因是我对于 use-package
并不熟悉,并没有将新的配置放到 use-package
的括号里,研究了下 :config
的配置,应该是把原来放在 use-package
外面的配置全部放到 :config
下面就可以了。这样就是在启动 org-roam
后,再启动上述配置。