org-roam
相关设置如下:
(use-package! org-roam
:after org
:bind (("C-c n l" . org-roam-buffer-toggle)
("C-c n f" . org-roam-node-find)
("C-c n g" . org-roam-graph)
("C-c n i" . org-roam-node-insert)
("C-c n c" . org-roam-capture)
("C-c n T" . org-roam-dailies-capture-today))
:config
(org-roam-setup))
在 M-x org-roam-setup
之前调用任何 org-roam
相关命令,都会报类似:
org-roam-db-sync: Symbol’s function definition is void: org-roam--list-all-files
这样的错误,手动 org-roam-setup
之后一切正常,请教下,这个设置有什么问题么?
谢谢。
1 个赞
因为在 (org-roam-setup) 之前下面几个命令是能用的:
org-roam-node-find
org-roam-node-insert
org-roam-capture
org-roam-ref-find
你可以先在第一次先用这个几个命令,就会自动激活(org-roam-setup)
你也可以让 (org-roam-setup) 在 Emacs 启动的时候执行一次,不过这样的话会增加 Emacs 启动的时间。
我一般启动 emacs 后会以 org-roam-dailies-capture-today
开始,那要这样的话,就在在此命令之前手动执行一次 org-roam-setup
了?
可以自己改一下,再绑个键
(defun org-roam-capture-today ()
"Startup org-roam capture today with setup."
(interactive)
(org-roam-setup)
(org-roam-dailies-capture-today)
)
1 个赞
因为:bind 会触发延迟加载,导致:config无法被执行,可以加上:demand t 强制加载
改成这样就可以了:
(use-package! org-roam
:after org
:bind (("C-c n l" . org-roam-buffer-toggle)
("C-c n f" . org-roam-node-find)
("C-c n g" . org-roam-graph)
("C-c n i" . org-roam-node-insert)
("C-c n c" . org-roam-capture)
("C-c n T" . org-roam-dailies-capture-today))
:init
(org-roam-setup))
2 个赞