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

酷炫!以及沒有直接跟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 个赞

emacser都有过度工具化的倾向。

知识重要,但是思考更重要,光有知识的收集,没有现实的经历和思考,认知上不去,收集整理天下知识都没用。

知识网状关系对于作家或者科研工作很有用,因为他们需要有严密的关系组织完成最终目标,普通人更多是记下一些容易忘但以后要用的知识就可以了。

轻负担的用emacs,体验生活多思考多休息更重要,毕竟emacs就是工具。

36 个赞

这也太赞了吧, 心动了, 等更新了我要升级.

org-roam-server 的原作者明确表示已经没有时间做迁移 v2 的工作了,有几个人计划做新的,不过没用 clojurescript,用 clojurescript 只是一个路人不成熟的提议。

说实话他们动作挺慢的,我已经忍受不了自己写了一个支持 org-roam v2的 server 出来,不过我写的版本没打算跟 org-roam 兼容,改了里面一些东西,因为 org-roam 的主要维护者并不是重度用户,平常也没有很多时间,能做出来 v2 版本已经很不容易了。所以我觉得这个项目以后的发展堪忧,打算按照自己的想法进行改造和开发。

1 个赞

顺便提一句,如果你还用 org-roam v1,我给 org-roam-server 贡献了搜索一个笔记节点,然后移动视图,将其放在页面中央的功能,不过鉴于 org-roam-server 的作者也没时间管项目,可能不会发新 realease,想用的可以用仓库里的 index.html 替换插件目录里面的。

这也是另一个我打算自己写的原因 :smiley:

2 个赞

org-roam 的主要维护者并不是重度用户 是说不是 org-roam-server 的重度用户?

确实,是我看错了。不过看目前发出来的这个预览,效果还是不错。
说实话,记笔记的话,org-roam + org-raam+graph 就够用了, org-roam-server 只是锦上添花。

"I’m less crazed about note-taking paradigms than most people think. I still use and maintain Org-roam because it removes the friction in taking, accessing and synthesizing notes, and to achieve this I only need to use a tiny subset of its features. This makes it difficult for me to maintain or fix user-contributed features. Being the sole maintainer is really really hard: beyond my full-time job I have little mental capacity left to comprehend and resolve these issues that I don’t have first-hand experience with. "

from: https://blog.jethro.dev/posts/org_roam_v2/