Last update: 2023-12-12

org-roam-db-syncを非同期にする   Emacs OrgMode OrgRoam

Org-roamを便利につかっているが、如何せんDBの同期に時間がかかるので、 少なくとも非同期に実行できるようにしてみる。

調べてみると async.el 1が使えそうだ。

実装はこの記事を参考にした。

(defun my/org-roam-async-db-sync ()
  (async-start
   `(lambda ()
      (let ((now (current-time)))
        (require 'package)
        (package-initialize)
        (require 'org-roam)
        (setq org-roam-directory ,org-roam-directory)
        (org-roam-db-sync)
        now))
   '(lambda (start-time)
      (let ((now (current-time)))
        (message "roam db sync done in %0.1fsec."
                 (time-to-seconds (time-subtract now start-time)))))
   ))

(my/org-roam-async-db-sync)

脚注