Org-roam(v2) 以及 org-roam-ui 的使用姿势(已支持Emacs 29 内置的 sqlite)

我删除了这个包都没用。看来还跟其他包有冲突,暂时先用 org-roam-buffer 吧,你这个这个命令调出的界面也没法跳转吗?

org-roam-buffer可以,不知为啥,但感觉没有org-roam-buffer-toggle方便,先将就这样用吧 :joy:

那个三维图可以帮助你整理笔记。通过图你可以直观地看到各个笔记直接的联系,可以发现重复的笔记,还有本来应该关关联起来但是没有建立连接的笔记。

org-roam文件名字修改后,原来的link都失效了,只有手动创建link再添加。有没有更优雅的方式,文件名修改后能自动更新相关link,还是使用姿势不对?

我还没改过文件名。关注!

我这里测试了修改文件名是没关系的啊。我用的rename-this-file-and-buffer这个函数修改文件名。 因为你修改了文件名,后台会自动更新数据库的。

你可以试试用我上面提到的这个函数改名。

文件名改动后最好手动 M-x org-roam-db-sync 一下.

酷炫!以及沒有直接跟logseq合作用logseq做前端而是借鉴了吗?

目前看来是直接基于 org-roam 来做了。
我对 Logseq 不是很了解,据说 org-roam 社区和 Logseq 社区都有这方面讨论,希望能够在 Logseq 兼容 org-roam 的 org 文件。你可以关注下这个 Integrate with LogSeq 的issue。

1 个赞

好像没有这个函数,我用的spacemacs的rename-current-buffer-file (SPC f R),我在dir模式下修改也不行

很奇怪,sync了也不行

为啥org-roam-v2只让用id链接,同时保持用file链接无法实现吗?

用了v2,每个文件头都有个PROPERTIES,要是用header链接,PROPERTIES就更多了。 强迫症感觉很不适应 :confused:

1 个赞

用org-noter的时候就注意到了PROPERTIES过多的问题,可以写个函数隐藏

(defun org-cycle-hide-drawers (state)
  "Re-hide all drawers after a visibility state change."
  (when (and (derived-mode-p 'org-mode)
             (not (memq state '(overview folded contents))))
    (save-excursion
      (let* ((globalp (memq state '(contents all)))
             (beg (if globalp
                    (point-min)
                    (point)))
             (end (if globalp
                    (point-max)
                    (if (eq state 'children)
                      (save-excursion
                        (outline-next-heading)
                        (point))
                      (org-end-of-subtree t)))))
        (goto-char beg)
        (while (re-search-forward org-drawer-regexp end t)
          (save-excursion
            (beginning-of-line 1)
            (when (looking-at org-drawer-regexp)
              (let* ((start (1- (match-beginning 0)))
                     (limit
                       (save-excursion
                         (outline-next-heading)
                           (point)))
                     (msg (format
                            (concat
                              "org-cycle-hide-drawers:  "
                              "`:END:`"
                              " line missing at position %s")
                            (1+ start))))
                (if (re-search-forward "^[ \t]*:END:" limit t)
                  (outline-flag-region start (point-at-eol) t)
                  (user-error msg))))))))))

如果想在org-cycle的时候显示,可以把

((eq org-cycle-subtree-status 'subtree)
 (org-show-subtree)
 (org-unlogged-message "ALL")
 (setq org-cycle-subtree-status 'all))

放到org.el中 ((or children-skipped in org-cycle-internal-local 的前面。 效果:Peek 2021-07-23 14-41

10 个赞

不好意思,我用的也是个自定义的函数。不过原理应该都差不多。 按理说是会自动更新内容的,org-roam v2 都是按 id 去关联了,你改了buffer name,但是 id 应该没变吧?
另外,我用的重命名函数如下:

(defun rename-this-file-and-buffer (new-name)
  "Renames both current buffer and file it's visiting to NEW-NAME."
  (interactive "sNew name: ")
  (let ((name (buffer-name))
        (filename (buffer-file-name)))
    (unless filename
      (error "Buffer '%s' is not visiting a file!" name))
    (progn
      (when (file-exists-p filename)
        (rename-file filename new-name 1))
      (set-visited-file-name new-name)
      (rename-buffer new-name))))
1 个赞

感谢分享! 我就是印象中在哪儿见过这两个团队要搞integration来着所以才有点意外

这个太棒了!PROPERTIES过多也是我用org noter和roam时候很郁闷的问题

是的,文件名修改后ID属性还在值没变,跳转的时候显示Cannot find entry with ID xxx

我这还是没法复现你的问题。你可以搞个最小配置测试下试试看。估计是和别的包有冲突了。

你的感觉没有错, 事实上有人详细论证过这种关系图的无用性

4 个赞

看了感触很深,确实感觉之前听说 roam 的时候就是觉得它说可以双向连接,于是我就到处添加连接,听说了思维是网状的,于是就按照学习的方法去整理自己之前做的笔记,并且编制了一些自己应该如何写笔记的原则之类的,搞得自己非常难受,于是折腾完这些之后很久都没有欲望写笔记。

后面不小心删了家目录,并且没有备份这些之前的笔记(也没有啥重要的东西,那个时候真的是为了做笔记而做笔记)。重新开始使用roam,不过这次我已不再像之前那样“为了做笔记而做笔记”,而是不在意形式与内容的随手记——不管什么“双向链接”或者其它那些概念。

现在想想,我学习Emacs的过程中,“机心”始终有一点重——经常不是因为的使用过程中遇到了什么问题于是寻找了某个工具,而是因为某个工具比较炫酷所以就“创造”了自己的需求,因此,我似乎配置过非常多的配置完之后就再也没有使用过的东西。现在想想,虽然这个过程里面学习了很多,但是其实也付出了所谓的“机会成本”,这些时间我本可以去做别的有趣的事情。

7 个赞