理性讨论:emacs+org mode可否实现onenote/joplin的树状笔记+单文件功能

这我知道,我在考量性价比,毕竟笔记工具终究是个工具 可否给个大概思路?我再折腾下elisp两周左右,如果太耗费时间,我就换工具了 之所以不想用onenote这种,我是觉得太笨重,我说过我还是毕竟喜欢纯文本笔记的 理性讨论欢迎,玻璃心的emacser请远离本帖

类似这种结构的,每个node是一个单独的文章,node所在的buffer只能编辑node本身,不能编辑正文,然后一个notebook是一个单文件(比如sqlite的)

你可以建立一个index.org,里面插入文件链接来管理你的其他单独org笔记。

补充 :用c-c c-x b可以直接进入某个heading,建议楼主有什么不懂的地方自己网上多搜索。

emacs 的成本永远都很高,意义在于可扩展性,而不是易用性。

当然你可以通过定制让 emacs 对你自己特别易用,但成本一定不会低。

2赞

对 org 不是很熟悉,不过你的功能个人觉得 dired + imenu 应该可以实现。dired 用来显示你的 org 文件(文件管理),imenu 用来管理内部每个章节。

died 就用自带的,觉得功能不够的话可以试试 neotreerangertreemacssidebar ,我看了下,主页都有截图,自己选一个喜欢的,或者挨个试一下。

imenu 的话,如果有装 counsel 的话,可以直接用 counsel-imenu,不喜欢的话,可以试试 imenu-list

我自己尝试了一下 treemacs + imenu-list 的组合供参考,不知道是不是符合你的要求,下面是截图: imenu-list 的位置默认为右边,可以通过设置将 imenu-list 的位置放在左边 (setq imenu-list-position 'left) (除此之外还可以放在上边或者下边)

看了楼下才知道好像还有编辑单个 node 同时隐藏其他 node 的需求?就像楼下说的可以使用 org-narrow-to-subtree 配合, imenu-list 的话可以写一个 advice,这样每次点击进去的时候只显示单个 node:

(advice-add 'imenu-list-goto-entry :after
            #'(lambda (&rest _)
                (org-narrow-to-subtree)))

这样子话,org-startup-folded 的值应该设置为 showeverything,体验或许会更好?

(setq org-startup-folded 'showeverything)
12赞

我也是用org记录笔记和工作logbook,除非你用得很高端,不然没有太复杂的,只是各人用法五花八门,文档对新手也不是很友好(个人觉得),而且未必能完全符合你的要求和现在的使用习惯。

我是把所有笔记都放到同一个org文件里,用counsel-imenu搜索headline,执行org-narrow-to-subtree后再编辑。这就跟你想要的“只能编辑node本身”很相似的。

多谢楼上的几位大侠 我去试试

org-roam 了解一下?不知道满不满足你的要求。

joplin用户路过。我一直把emacs当编辑器用,记笔记还是用joplin。 感觉想用emacs完全实现joplin的功能可能比较麻烦。

treemacs 就足够了。

notebook -> 工作区
node/subnode1/subnode2 -> 文件夹/文章/章节

1赞

拼写错了 :rofl:

改过来了 :sweat_smile:

org 文件的headline怎么可以作为子树显示在左边的?

光标放在 treemacs 的 org 文件上按一下 tab,一下不行多按几下,可能太大的话加载有点慢。

受教 :+1:

我用 binder: https://github.com/rnkn/binder

但是emacs感觉还是直接用find-file或者projectile来得快

现在再来看这个问题,不用dired + imenu,通过打开两个窗口坚向分割的办法也可以实现类似功能,一个窗口显示文章列表的链接,并自定义链接的打开方式,另一个窗口显示org文件的内容就可以,我是通过 动态改变org文件的内容 来实现的,也就不需要做org文件管理。

录了一个gif

这样看起来虽然效果不错,但实际用下来却感觉没这个必要,可以在一个窗口搞定的事情分成两个窗口,占地面积更大了,而且我的显示器也比较小,空间有限。

ranger.el is cool. Trust me.

treemacs感觉就足够了吧